使用 Amazon SDK for Java - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon SDK for Java

Amazon SDK for Java 提供了适用于 Amazon S3 存储桶和对象操作的 API。对于对象操作,除了提供用于在单个操作中上传对象的 API 外,开发工具包还提供 API 来分段上传大型对象。有关更多信息,请参阅 使用分段上传来上传和复制对象

Amazon SDK for Java 允许您选择使用高级别或低级别 API。

低级别 API。

低级别 API 适用于底层 Amazon S3 REST 操作,例如创建、更新和删除适用于存储桶和对象的操作。如果使用低级别分段上传 API 上传大型对象,它可以提供更好的控制。例如,可使用它暂停和恢复分段上传,在上传期间更改分段的大小,或者在事先不知道数据大小的情况下开始上传。如果您没有这些要求,请使用高级别 API 上传对象。

高级别 API

对于上传对象,开发工具包通过提供 TransferManager 类来提供更高级别的抽象。高级别 API 是更简单的 API,其中只需几行代码,您即可将文件和流上传到 Amazon S3。除非您需要控制上传 (如前面的低级别 API 部分所述),否则您应该使用此 API 来上传数据。

对于较小的数据,可使用 TransferManager API 通过单个操作上传数据。但是,当数据大小达到特定的阈值后,TransferManager 会转为使用分段上传 API。如果可能,TransferManager 会使用多个线程来并发上传分段。如果分段上传失败,API 最多会重试三次失败的分段上传。但是,可以使用 TransferManagerConfiguration 类来配置这些选项。

注意

如果您将流用作数据源,TransferManager 类不会执行并发上传。

Java API 组织

Amazon SDK for Java在以下包中提供 API:

  • com.amazonaws.services.s3 — 提供用于创建 Amazon S3 客户端以及使用存储桶和对象的 API。例如,该 API 可让您创建存储桶、上传对象、获取对象、删除对象和列出键。

  • com.amazonaws.services.s3.transfer — 提供高级别 API 数据操作。

    此高级别 API 旨在简化对象与 Amazon S3 之间的传输。它包含 TransferManager 类,该类提供了使用、查询和操作传输的异步方法。它还包括 TransferManagerConfiguration 类,您可以使用该类配置用于上传分段的最小分段大小以及使用分段上传时的阈值 (字节)。

  • com.amazonaws.services.s3.model — 提供低级别 API 类来创建请求和处理响应。例如,它包含用于描述获取对象请求的 GetObjectRequest 类、用于描述列出键请求的 ListObjectsRequest 类以及用于创建分段上传的 InitiateMultipartUploadRequest 类。

有关 Amazon SDK for Java API 的更多信息,请参阅《Amazon SDK for Java API 参考》。

测试 Amazon S3 Java 代码示例

本指南中 Java 示例与Amazon SDK for Java版本 1.11.321 兼容。有关设置和运行代码示例的说明,请参阅《Amazon SDK for Java 开发人员指南》中的入门