Amazon Simple Storage Service
开发人员指南 (API 版本 2006-03-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用 适用于 .NET 的 AWS 开发工具包

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

适用于 .NET 的 AWS 开发工具包 允许您选择使用高级别或低级别 API。

低级别 API。

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

高级别 API

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

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

注意

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

.NET API 组织

使用适用于 .NET 的 AWS 开发工具包写入 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)。

有关适用于 .NET 的 AWS 开发工具包 API的更多信息,请参阅适用于 .NET 的 AWS 开发工具包版本 3 API 参考

运行 Amazon S3 .NET 代码示例

本指南中的 .NET 代码示例与适用于 .NET 的 AWS 开发工具包版本 3.0 兼容。有关设置和运行代码示例的说明,请参阅适用于 .NET 的 AWS 开发工具包开发人员指南 中的适用于 .NET 的 AWS 开发工具包入门