本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon S3
本节提供有关使用AWS SDK for Java 2.x 来处理 Amazon S3 的背景信息。本节对本指南的代码示例部分中介绍的 Amazon S3 Java v2 示例作出了补充。
AWS SDK for Java 2.x 中的 S3 客户端
AWS SDK for Java 2.x 提供了不同类型的 S3 客户端。下表显示了不同客户端的差异,可以帮助您确定哪种客户端更适合您的使用案例。
| S3 客户端 | 简短描述 | 何时使用 | 限制/缺点 |
|---|---|---|---|
|
基于 AWS CRT 的 S3 客户端 |
|
|
|
|
基于 Java 的 S3 异步客户端,启用了分段功能 |
|
|
性能不如基于 AWS CRT 的 S3 客户端。 |
|
基于 Java 的 S3 异步客户端,未启用分段功能 |
|
|
没有性能优化。 |
|
基于 Java 的 S3 同步客户端 接口:S3Client 生成器:S3ClientBuilder |
|
|
没有性能优化。 |
注意
从版本 2.18.x 开始,在包括端点覆盖时,AWS SDK for Java 2.x 使用虚拟托管式寻址。这适用于只要桶名称是有效 DNS 标签的所有情况。
在客户端生成器中使用 true 调用 forcePathStyle
以下示例显示了配置了端点覆盖并使用路径式寻址的服务客户端。
S3Client client = S3Client.builder() .region(Region.US_WEST_2) .endpointOverride(URI.create("https://s3.us-west-2.amazonaws.com")) .forcePathStyle(true) .build();