View a markdown version of this page

最佳实践适用于 Amazon 与... 一起开发 Amazon SDK for Java - Amazon SDK for Java 1.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon SDK for Java 1.x 已于 2025 年 12 月 31 日终止支持。我们建议您迁移到 Amazon SDK for Java 2.x 以继续获得新功能、可用性改进和安全更新。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

最佳实践适用于 Amazon 与... 一起开发 Amazon SDK for Java

以下最佳做法可以帮助您在使用开发 Amazon 应用程序时避免出现问题或麻烦 Amazon SDK for Java。这些最佳实践已按服务分类整理。

S3

避免 ResetExceptions

当您使用流(通过AmazonS3客户端或TransferManager)将对象上传到 Amazon S3 时,可能会遇到网络连接或超时问题。默认情况下, Amazon SDK for Java 尝试重试失败的传输,方法是在传输开始之前标记输入流,然后在重试之前将其重置。

如果直播不支持标记和重置,则ResetException当出现暂时性故障并启用重试时,SDK 会抛出。

最佳实践

建议您使用支持标记和重置操作的流。

避免 a 的最可靠方法ResetException是使用文件或来提供数据 FileInputStream,该文件或 Amazon SDK for Java 可以不受标记和重置限制的约束。

如果直播不是,FileInputStream但支持标记和重置,则可以使用setReadLimit方法设置标记限制RequestClientOptions。其默认值为 128KB。将读取限制值设置为大于流大小一字节将可靠地避免 ResetException.

例如,如果流的最大预期大小为 100000 字节,则将读取限制设置为 100001 (100000 + 1) 字节。标记和重置操作将始终适用于 100000 字节或更少的字节。请注意,这可能会导致一些流将该数量的字节缓冲到内存中。