为了确保高质量并与其他 Cloud 库保持一致,Storage Transfer Service 的文档现在使用 Cloud 客户端库 (而不是 Google API 客户端库 )。如需详细了解这两个选项,请参阅 客户端库说明。
Google API 客户端库会继续接收更新,但文档中不再引用该库。
本指南介绍了使用 Storage Transfer Service 时的主要差异,并提供了有关在迁移到 Cloud 客户端库时更新客户端的说明。
Java
更新依赖项
如需切换到新库,请将对 google-api-services-storagetransfer 的依赖项替换为 google-cloud-storage-transfer。
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage-transfer</artifactId>
<version>0.2.3</version>
</dependency>如果您使用的是不带 BOM 的 Gradle,请将此代码添加到您的依赖项中:
implementation 'com.google.cloud:google-cloud-storage-transfer:0.2.3'
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>libraries-bom</artifactId>
<version>24.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage-transfer</artifactId>
</dependency>
在大多数情况下,代码可以非常轻松地从 API 客户端库转换为 Cloud 客户端库。以下是两个 Java 客户端之间的一些主要区别
客户端实例化
Cloud 客户端库通过在后台处理客户端实例化,减少了许多与客户端实例化相关的样板文件。
API 客户端库
GoogleCredentials credential = GoogleCredentials.getApplicationDefault();
if (credential.createScopedRequired()) {
credential = credential.createScoped(StoragetransferScopes.all());
}
Storagetransfer storageTransfer = new Storagetransfer.Builder(Utils.getDefaultTransport(),
Utils.getDefaultJsonFactory(), new HttpCredentialsAdapter(credential))
.build();
Cloud 客户端库
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
模型类的构建器
Cloud 客户端库中的模型类使用构建器,而不是构造函数。
API 客户端库
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Cloud 客户端库
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
列表操作返回可迭代对象
Cloud 客户端库中的列表操作返回简单的可迭代对象,而不是 API 客户端库中的分页结果。
API 客户端库
public class StoragetransferExample {
public static void main(String args[]) throws IOException, GeneralSecurityException {
Storagetransfer storagetransferService = createStoragetransferService();
Storagetransfer.TransferJobs.List request = storagetransferService.transferJobs().list();
ListTransferJobsResponse response;
do {
response = request.execute();
if (response.getTransferJobs() == null) {
continue;
}
for (TransferJob transferJob : response.getTransferJobs()) {
System.out.println(transferJob);
}
request