本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从以下地址迁移预签名 URL 下载 适用于 Java 的 AWS SDK v1 到 v2
迁移您的预签名 URL 下载代码以使用异步处理并访问版本 2 中的扩展下载选项。本主题介绍如何从的版本 1.x (v1) 迁移到版本 2.x (v2)。 适用于 Java 的 AWS SDK有关 v2 预签名 URL 下载功能的信息,请参阅。与... 一起工作 Amazon S3 预签名 URL
High-level 改变
以下列表总结了 v1 和 v2 在预签名 URL 下载方面的主要区别:
-
P@@ ac kage:
com.amazonaws.services.s3→software.amazon.awssdk.services.s3。 -
客户端类:
AmazonS3(同步)→S3AsyncClient(异步)。 -
架构:同步阻塞调用 → 使用异步调用
CompletableFuture。 -
Multipart:仅可通过转账管理器获得 → 可直接在客户端上使用
multipartEnabled(true)。 -
传输管理器:仅限文件目标 → 文件、字节或自定义转换器。
依赖关系、包和类名的变化
下表显示了从 v1 到 v2 的依赖关系和类名的变化。
| 更改 | v1 | v2 |
|---|---|---|
|
Maven 依赖项 |
|
|
| 软件包名称 | com.amazonaws.services.s3 |
software.amazon.awssdk.services.s3 |
| 类名 | AmazonS3, TransferManager |
S3AsyncClient, S3TransferManager |
1 Maven Central 网站上有最新版本
API 更改
S3 客户端下载
下表比较了 S3 客户端下载的 v1 和 v2 API 调用。
| 使用案例 | v1 | v2 |
|---|---|---|
| 创建客户端 |
|
|
| 生成预签名 URL |
|
|
| 创建下载请求 |
|
|
| 下载直播 |
|
|
| 下载到文件 |
|
|
| 使用范围下载 |
|
|
转会管理器下载
下表比较了传输管理器下载的 v1 和 v2 API 调用。
| 使用案例 | v1 | v2 |
|---|---|---|
| 创建转接管理器 |
|
|
| 下载 |
|
|
有关更多信息,请参阅 使用预签名 URL 下载。
配置更改
S3 客户端
下表描述了从 v1 到 v2 的 S3 客户端配置更改。
| 设置 | v1 | v2 |
|---|---|---|
| 多部分配置 | PresignedUrlDownloadConfig.withDownloadSizePerRequest(long) |
S3AsyncClient.builder().multipartConfiguration(c ->
c.minimumPartSizeInBytes(...)) |
| 自定义标题 | PresignedUrlDownloadRequest.putCustomRequestHeader(String,
String) |
不支持。仅在下载时If-Match可以设置Range和。 |
Transfer Manager
下表描述了从 v1 到 v2 的传输管理器配置更改。
| 设置 | v1 | v2 |
|---|---|---|
| 进度跟踪 | PresignedUrlDownloadConfig.withS3progressListener(...) |
PresignedDownloadFileRequest.builder().addTransferListener(...) |
| 重试时恢复 | PresignedUrlDownloadConfig.withResumeOnRetry(true) |
不支持 |
| Pause/Resume | 不支持 | 不支持 |
注意
S AWS CRT-based 3 客户端 (S3AsyncClient.crtBuilder()) 当前不支持预签名 URL 扩展名。使用 S3AsyncClient.builder()。