AWS ResetException - 无法重置请求输入流

时间:2017-08-22 14:58:19

标签: java amazon-web-services amazon-s3 inputstream aws-sdk

我目前正在处理一些将多部分对象上传到S3的代码,我遇到了这个错误:

Caused by: com.amazonaws.ResetException: Failed to reset the request input stream;  If the request involves an input stream, the maximum stream buffer size can be configured via request.getRequestClientOptions().setReadLimit(int)

最初readLimit设置为5MB。我已经更改了代码,以便输入流上的ReadLimit将是对象大小四舍五入到最接近的5MB(因为这是AWS限制的5GB上限)。这似乎解决了这个问题,但现在同样的错误出现在新的地方。

是否有人建议将readLimit置于什么值以获得最高可靠性?

任何帮助将不胜感激,

由于

泰德

1 个答案:

答案 0 :(得分:2)

对于那些寻找答案的人来说,解决方案是使用带有BackOffStrategy的RetryPolicy。后退战略缓慢增加了连接尝试之间的时间量。

http://docs.aws.amazon.com/general/latest/gr/api-retries.html

此外,如果你使用backoffstrategy,你需要使用兼容的FileStreamer,它可以在上传数据时标记/重置。

https://github.com/awsdocs/aws-java-developer-guide/blob/master/doc_source/best-practices.rst