

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

# 使用 Amazon S3
<a name="examples-s3"></a>

本节提供有关使用 AWS SDK for Java 2.x来处理 Amazon S3 的背景信息。本节对本指南的*代码示例*部分中介绍的 [Amazon S3 Java v2 示例](java_s3_code_examples.md)作出了补充。

## 中的 S3 客户端 AWS SDK for Java 2.x
<a name="s3-clients"></a>

 AWS SDK for Java 2.x 提供了不同类型的 S3 客户端。下表显示了不同客户端的差异，可以帮助您确定哪种客户端更适合您的使用案例。


**Amazon S3 客户端的不同类型**  

| S3 客户端 | 简短描述 | 何时使用 | 限制/缺点 | 
| --- | --- | --- | --- | 
| **AWS 基于CRT的S3客户端**<br />接口：[S3 AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />生成器：[S3 CrtAsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html) | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)请参阅[使用高性能 S3 客户端： AWS 基于 CRT 的 S3 客户端](crt-based-s3-client.md)。 |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)  | 
| **基于 Java 的 S3 异步客户端，*启用了*分段功能**<br />接口：[S3 AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />生成器：[S3 AsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClientBuilder.html) | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)请参阅[将基于 Java 的 S3 异步客户端配置为使用并行传输](s3-async-client-multipart.md)。 |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)  | 性能不如基于 AWS CRT 的 S3 客户端。 | 
| **基于 Java 的 S3 异步客户端，*未启用*分段功能**<br />接口：[S3 AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />生成器：[S3 AsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClientBuilder.html) |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)  | 没有性能优化。 | 
| **基于 Java 的 S3 同步客户端**<br />接口：[S3Client](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Client.html)<br />生成器：[S3 ClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3ClientBuilder.html) |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sdk-for-java/latest/developer-guide/examples-s3.html)  | 没有性能优化。 | 

**注意**  
从版本 2.18.x 及更高版本开始，在包含终端 AWS SDK for Java 2.x 节点覆盖时使用[虚拟托管式寻址](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access)。这适用于只要桶名称是有效 DNS 标签的所有情况。  
在客户端生成器中使用 `true` 调用 [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3BaseClientBuilder.html#forcePathStyle(java.lang.Boolean](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3BaseClientBuilder.html#forcePathStyle(java.lang.Boolean) 方法，可强制客户端对桶使用路径式寻址。  
以下示例显示了配置了端点覆盖并使用路径式寻址的服务客户端。  

```
S3Client client = S3Client.builder()
                          .region(Region.US_WEST_2)
                          .endpointOverride(URI.create("https://s3.us-west-2.amazonaws.com"))
                          .forcePathStyle(true)
                          .build();
```

**Topics**
+ [SDK 中的 S3 客户端](#s3-clients)
+ [将流上传到 S3](best-practices-s3-uploads.md)
+ [预先签名 URLs](examples-s3-presign.md)
+ [跨区域访问](s3-cross-region.md)
+ [使用校验和实现数据完整性保护](s3-checksums.md)
+ [使用高性能 S3 客户端](crt-based-s3-client.md)
+ [配置并行传输支持](s3-async-client-multipart.md)
+ [传输文件和目录](transfer-manager.md)
+ [S3 事件通知](examples-s3-event-notifications.md)