- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的 Android 应用程序使用 AWS Java SDK 将用户照片上传到 S3。
只要用户手机的时钟“倾斜”,就会导致所有传输失败。这是 S3 的一个有据可查的方面:
http://aws.amazon.com/articles/1109?_encoding=UTF8&jiveRedirect=1#04
看起来上游S3服务很清楚地报告了这个错误:
HTTP Status Code: 403 Forbidden
Error Code: RequestTimeToo-Skewed
Description: The difference between the request time and the server's time is too large.
然而,当使用 Java SDK 时,似乎信息性 403 代码丢失了......我只有一个不透明的“TransferState.Failed”可以通过(顺便说一句,如果互联网连接丢失,这也是同样的错误,如果它超时,等等......)。
据我从文档中得知:
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/TransferProgress.html http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/Transfer.TransferState.html http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/Upload.html
无法获取有关传输失败的额外“RequestTimeToo-Skewed”元数据。
我错过了吗?当使用 Amazon 的 Java SDK 进行 S3 传输失败时,有什么方法可以获取额外的错误信息吗?
更新#1:一位评论者友善地强调我应该澄清两点:
更新#2:衷心感谢 Jason(来自 AWS SDK 团队)来这里帮助我。如果您使用某些方法,重要信息确实可以作为 AmazonS3Exception 的属性使用。文档最初让我感到困惑,我认为轮询状态需要手动 Thread.sleep() 循环(因此我无法利用 waitForCompletion 或 waitForException),但如果您在 PutObjectRequest 上使用 ProgressListener,您可以获得完整的进度回调和AmazonS3Exception 的错误保真度。
最佳答案
这两种方法应该可以帮助您:
如果您根据传输进度事件检测到传输失败,您只需调用 Transfer.waitForException() 即可返回发生的异常。在这种情况下,该异常将是 AmazonServiceException,其中包含您需要查看的所有信息,以了解真正的问题是时钟偏差问题。
或者,Transfer.waitForCompletion()
方法将从 ExecutionException 中解开原始异常并直接抛出原始异常,就好像这一切都发生在一个线程上一样。如果您想使用 catch block 干净利落地捕获不同类型的错误,这可能是一种更方便的方法。
我不同意“catch Exception” block “过于宽泛”。该代码的要点是捕获发生的任何错误,将传输标记为失败并重新抛出错误,以便应用程序代码可以知道它。如果它不那么广泛,那么就是异常可能会偷偷溜走并且传输进度不会正确更新并且与现实不同步的情况。
提供这两种方法并拍摄,如果有帮助请告诉我们!
关于android - AWS S3 Java SDK : detect time/clock skew programmatically?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033064/
我在学习DDIA中的数据库事务,这本书中有两个概念,一个是工作负载不平衡的热点,另一个是时间异常,我不明白时间异常的意思,为什么叫时间异常。。我想知道在这种情况下如何解释倾斜的威胁
我只是想歪斜 parent ,然后歪斜 child 。 示例:HTML Hello 示例:CSS .parent { transform: skew(-10deg); } .c
我真的需要了解如何skew(xdeg)函数起作用所有研究似乎都没有解释 x Angular 如何影响其他点并像这样扭曲它,我需要知道它是否有任何数学公式或一种能够预期使用特定度数的结果的方法。 附:我
这个问题在这里已经有了答案: Compiling C++ on remote Linux machine - "clock skew detected" warning (14 个回答) 10 个月前
我正在为运行 iOS7+ 的设备编写 Swift 2.0 代码。 是否可以如下所示以倾斜/对角线/倾斜格式呈现表格 View ? 显然,如果答案是肯定的,我需要经过什么过程才能得到结果? 最佳答案 是
我想知道是否可以使用 transform:skew 获得完美的边缘(我想附加一个 img 但我不能(1 分)) https://ibb.co/g5qODG (没有阴影的图像示例。它看起来仍然被咬了。)
您好,我正在尝试找到在调整页面大小时将倾斜元素保持在适当位置的最佳方法。 我希望能够扩展内容区域(绿色区域)并保持相同的形状,但也希望白色 Angular 的形状也相同。 对不起,我在这方面缺乏知识,
我正在尝试使用 CSS 在每一侧倾斜一个 div 以模仿相框 Angular ,但我不知道如何分别倾斜每一端并保留背景图像。 最佳答案 已更新再添加两个div,这将是一个技巧
我无法弄清楚如何使以下布局正常工作。我并不局限于纯 CSS——我知道 JS 将参与使其跨浏览器——但 CSS 解决方案会很棒。这是我想要实现的目标: 我试过下面的代码,先倾斜容器,然后朝相反的方向倾斜
这个问题已经有答案了: Compiling C++ on remote Linux machine - "clock skew detected" warning (14 个回答) 已关闭 2 年前。
我需要一些帮助。我有矩形(红色)。这个矩形有 transform: skew(0deg, -6deg); 我现在需要的是红色上方区域的高度。看图: 我确信这是简单的数学运算。但我在谷歌上找不到解决方案
有没有办法转换一个元素而不是该元素内的文本? body { font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sa
我正在尝试复制下图的样式: 这就是我所在的地方: .asymmetric { position: relative; background-color: #7CCBF2; } .asymmetric:
我需要帮助将 4 个内联 li 放入一个 div 中,但是,这些 li 需要“水平倾斜”。这是我需要做的:(对链接感到抱歉,但堆栈不允许我放置图片) https://www.flickr.com/ph
我正在远程计算机上工作,在安装软件时,我遇到了“检测到时钟偏差”警告,整个过程都失败了。我使用了“find . -exec touch {}\;”更新文件的时间戳但仍然失败,而且更连线,时间戳仍然领先
使用 MetPy 制作斜 T 图时,很难看到温度和露点轨迹以及绘制的基准线(混合比、潮湿绝热等)。是否有一种方法(在我看到的文档中没有看到)将它们淡化到背景中(例如 alpha)? 同时设置限制似乎有
我正在尝试了解 Karkkainen, P. Sanders 对线性时间后缀数组创建算法的实现。算法详情可见here . 我设法理解了整体概念,但未能将其与提供的实现相匹配,因此无法清楚地掌握它。 这
有人能给我解释一下 a 和 a 之间的区别吗数据库事务理论中的“丢失更新”和“写入偏斜”?有人可以给我举个例子吗? 最佳答案 通俗地说,丢失更新和写入偏差是并发写入事务相互干扰的方式。 写入偏差 发生
Spark SQL 有一个可用的倾斜提示(请参阅 here)。是否有适用于 Spark Scala 的等效提示? 例子这是事实表倾斜 ProductId 列的 Spark SQL 代码: SELECT
由于以下原因,我的网站上出现模糊的文本和图像: transform:skew(0.25rad) 这是我的 html: TITLE 这是我的 CSS: .one{ backgroun
我是一名优秀的程序员,十分优秀!