本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 进行 AWS 开发的最佳实践AWS SDK for Java
以下最佳实践可帮助您避免在使用 AWS SDK for Java 开发 AWS 应用程序时遇到问题和麻烦。这些最佳实践已按服务分类整理。
Amazon S3
避免 ResetExceptions
当您使用流(通过 Amazon S3 客户端或 AmazonS3)将对象上传到 TransferManager 时,可能遇到网络连接或超时问题。默认情况下,AWS SDK for Java 将尝试通过以下方式尝试重试失败的传输:先在传输开始前标记输入流,然后在重试前重新设置它。
如果流不支持标记和重置操作,则开发工具包将在出现临时故障并支持重试时引发 ResetException。
最佳实践
建议您使用支持标记和重置操作的流。
避免 ResetException 的最可靠方法是使用 File
如果流不是 FileInputStreamsetReadLimit
RequestClientOptions的 方法设置标记限制。其默认值为 128KB。将读取限制值设置为比流大小多 1 个字节 的值将可靠地避免 ResetException。
例如,如果流的最大预期大小为 100000 字节,则将读取限制设置为 100001 (100000 + 1) 字节。标记和重置操作将始终适用于 100000 字节或更少的字节。请注意,这可能会导致一些流将该数量的字节缓冲到内存中。