我们有一个过程,它将从S3下载文件,更改文件,然后将更新的文件上传回S3。这在99 +%的时间内工作正常。但是,似乎S3存在短暂的问题,导致短时间内失败,产生403(禁止)响应。
例如,前几天发生一起此类事件的日志条目
2018-05-02 19:01:19 INFO Downloaded file
2018-05-02 19:01:20 INFO Uploaded file
2018-05-02 19:01:20 INFO Updated key (renamed file)
2018-05-02 19:27:26 INFO Downloaded file
2018-05-02 19:27:26 ERROR Failed to download file, cause: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; )
2018-05-02 19:27:26 INFO Downloaded file
2018-05-02 19:27:26 ERROR Failed to download file, cause: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; )
2018-05-02 19:27:27 ERROR Failed to download file, cause: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; )
2018-05-02 19:27:27 INFO Downloaded file
2018-05-02 19:27:27 INFO Uploaded file
2018-05-02 19:27:28 ERROR Failed to upload file, cause: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; )
2018-05-02 19:27:28 INFO Downloaded file
2018-05-02 19:27:28 ERROR Failed to download file, cause: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; )
2018-05-02 20:30:32 INFO Downloaded file
2018-05-02 20:30:32 ERROR Failed to download file, cause: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; )
2018-05-02 20:30:32 INFO Downloaded file
2018-05-02 20:30:32 ERROR Failed to download file, cause: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; )
2018-05-02 20:30:32 INFO Downloaded file
2018-05-02 20:30:33 INFO Uploaded file
这些条目都来自同一个文件。它已成功下载,修改并再次上传。 30分钟后,尝试下载4次,然后上传失败。 3分钟后,尝试下载3次,然后成功上传。
我们正在使用AWS Java SDK客户端。有没有人有类似的经历,并想出如何解决?即使请求有效,S3调用偶尔也会被认为是正常的吗?
答案 0 :(得分:0)
我与其他云对象提供商有类似的问题,而不是S3。
所采取的解决方案是处理403
响应(将其记录以查找任何类型的模式或具体文件对象)并将请求重做最多次。
通常,在第一次403
响应时,第二个请求已完成,并收到200 Ok
。
在我们的案例中,问题在提供商在一些有问题的节点中进行更新后解决了这是一个更新的问题。这可以为您提供线索,以解决不一致问题:
尝试创建不同的存储桶。它可能是aws方面的具体桶配置错误。将文件移到那里。保持观察状态,检查403
病例是否减少甚至消失。
在另一个地区(最近的地方)创建一个不同的存储桶,它可以为您提供有关可能的网络问题的更好线索。
使用其他对象存储空间。如果问题仍然存在,那么最可能的是您使用的任何模块都与S3的当前版本/协议不一致。确保您在项目中使用的任何S3或aws包装器库更新到最新版本。