我目前正在处理一些将多部分对象上传到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置于什么值以获得最高可靠性?
任何帮助将不胜感激,
由于
泰德
答案 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