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

使用 Amazon SDK for .NET

Amazon SDK for .NET 提供了适用于 Amazon S3 存储桶和对象操作的 API。对于对象操作,除了提供用于在单个操作中上传对象的 API 外,开发工具包还提供 API 来分段上传大型对象 (参阅 使用分段上传来上传和复制对象)。

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

低级别 API。

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

高级别 API

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

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

注意

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

.NET API 组织

当使用 Amazon SDK for .NET 编写 Amazon S3 应用程序时,可以使用 AWSSDK.dll。此程序集中的以下命名空间提供分段上传 API:

  • Amazon.S3.Transfer — 提供高级别 API 来分段上传您的数据。

    它包括允许您指定用于上传数据的文件、目录或流的 TransferUtility 类。它还包括 TransferUtilityUploadRequestTransferUtilityUploadDirectoryRequest 类来配置高级设置,例如并发线程数量、分段大小、对象元数据、存储类 (STANDARD、REDUCED_REDUNDANCY) 和对象访问控制列表 (ACL)。

  • Amazon.S3 — 提供适用于低级别 API 的执行。

    它提供适用于 Amazon S3 REST 分段上传 API 的方法(参见 使用 REST API)。

  • Amazon.S3.Model — 提供低级别 API 来创建请求和处理响应。例如,它提供在启动分段上传时使用的 InitiateMultipartUploadRequestInitiateMultipartUploadResponse 类,以及在上传分段时使用的 UploadPartRequestUploadPartResponse 类。

  • Amazon.S3.Encryption — 提供 AmazonS3EncryptionClient

  • Amazon.S3.Util — 提供各种实用程序类,如 AmazonS3UtilBucketRegionDetector

有关 Amazon SDK for .NET API 的更多信息,请参阅《适用于 .NET 的 Amazon 开发工具包版本 3 API 参考》。

运行 Amazon S3 .NET 代码示例

本指南中 .NET 代码示例与Amazon SDK for .NET版本 3.0 兼容。有关设置和运行代码示例的信息,请参阅《适用于 .NET 的 Amazon SDK 开发人员指南》中的适用于 .NET 的 Amazon SDK 入门