Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

使用 AWS SDK for Java

AWS SDK for Java为 Amazon S3 存储桶和对象操作提供了 API。对于对象操作,除了提供用于在单个操作中上传对象的 API 外,开发工具包还提供 API 来分段上传大型对象 (参阅 使用分段上传 API 上传对象)。API 允许您选择使用高级别或低级别 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 组织

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

  • com.amazonaws.services.s3 – 提供适用于 Amazon S3 存储桶和对象操作的实施 API。

    例如,它提供方法来创建存储桶、上传对象、获取对象、删除对象和列出键。

  • com.amazonaws.services.s3.transfer – 提供高级别 API 数据上传。

    此高级别 API 旨在进一步简化将对象上传至 Amazon S3 的过程。它包括 TransferManager 类。它在分段上传大型对象时非常有用。它还包括 TransferManagerConfiguration 类,您可以使用它来配置上传分段的最小分段大小和用来使用分段上传的阈值 (字节)。

  • com.amazonaws.services.s3.model – 提供低级别 API 类来创建请求和处理响应。

    例如,它包括用于描述获取对象请求的 GetObjectRequest 类,用于描述列出键请求的 ListObjectRequest 类,以及用于启动分段上传的 InitiateMultipartUploadRequestInitiateMultipartUploadResult 类。

有关AWS SDK for Java API 的更多信息,请参阅 AWS SDK for Java API Reference

测试 Java 代码示例

开始使用 Java 代码示例的最简单方式是安装最新的AWS Toolkit for Eclipse。有关设置您的 Java 开发环境和 AWS Toolkit for Eclipse 的信息,请参阅 AWS SDK for Java Developer Guide 中的安装适用于 Java 的 AWS 开发工具包

以下任务将引导您创建和测试本指南中提供的 Java 代码示例。

创建 Java 代码示例的常规过程

1

按照 AWS SDK for Java Developer Guide 中的使用适用于 Java 的 AWS 开发工具包设置要使用的 AWS 凭证中所述,创建 AWS 凭证配置文件。

2

在 Eclipse 中创建一个新的 AWS Java 项目。此项目使用AWS SDK for Java进行了预先配置。

3

将代码从您正在阅读的部分复制到您的项目。

4

通过提供任意所需数据更新代码。例如,如果上传某个文件,则提供文件路径和存储桶名称。

5

运行该代码。验证是否使用 AWS 管理控制台创建了对象。有关 AWS 管理控制台的更多信息,请转到 http://www.amazonaws.cn/console/