높은 품질과 다른 Cloud 라이브러리와의 일관성을 위해 Storage Transfer Service 문서는 현재 Google API 클라이언트 라이브러리 대신 Cloud 클라이언트 라이브러리를 사용합니다. 두 가지 옵션에 대한 자세한 내용은 클라이언트 라이브러리 설명을 참고하세요.
Google API 클라이언트 라이브러리는 계속 업데이트를 수신하지만 문서에서 더 이상 참조하지 않습니다.
이 가이드에서는 Storage Transfer Service 사용 시 적용되는 주요 차이점에 대해 설명하고 Cloud 클라이언트 라이브러리로 마이그레이션할 때 클라이언트를 업데이트하는 방법을 설명합니다.
자바
종속 항목 업데이트
새 라이브러리로 전환하려면 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 클라이언트 라이브러리는 클라이언트 인스턴스화와 관련된 상용구를 상당 부분 줄여 백그라운드에서 처리합니다.
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();
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
모델 클래스용 빌더
Cloud 클라이언트 라이브러리의 모델 클래스는 생성자 대신 빌더를 사용합니다.
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
나열 작업 반환 반복 가능 항목
Cloud 클라이언트 라이브러리의 목록 작업은 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.setPageToken(response.getNextPageToken());
} while (response.getNextPageToken() != null);
}
public static Storagetransfer createStoragetransferService()
throws IOException, GeneralSecurityException {
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
GoogleCredential credential = GoogleCredential.getApplicationDefault();
}
return new Storagetransfer.Builder(httpTransport, jsonFactory, credential)
.build();
}
}
public class StoragetransferExample {
public static void main(String args[]) throws Exception {
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
ListTransferJobsRequest request = ListTransferJobsRequest.newBuilder().build();
for (TransferJob job : client.listTransferJobs(request).iterateAll()) {
System.out.println(job);
}
}
}
샘플 비교
여기에서는 Cloud 클라이언트 라이브러리를 사용하는 동등한 샘플과 비교하여 이전 API 클라이언트 라이브러리 샘플이 포함되어 있습니다. 이전에 이러한 샘플을 사용했다면 이 비교를 통해 코드를 새 Cloud 클라이언트 라이브러리로 이전하는 방법을 이해할 수 있습니다.
Amazon S3에서 전송
Nearline으로 전달
최근 전송 작업 확인
Python
종속 항목 업데이트
새 라이브러리를 사용하려면 google-cloud-storage-transfer
의 종속 항목을 추가합니다.
이것은 google-api-python-client
의 검색 클라이언트 대신 사용됩니다.
pip install --upgrade google-cloud-storage-transfer
클라이언트 인스턴스화
googleapiclient.discovery
대신 storage_transfer
모듈을 사용합니다.
샘플 비교
다음은 두 라이브러리의 차이점을 설명하기 위해 이전 API 클라이언트 샘플을 Cloud 클라이언트 라이브러리에 상응하는 샘플과 나란히 보여줍니다.
Amazon S3에서 전송
Nearline으로 전달
google.protobuf.duration_pb2.Duration
의 가져오기를 참고합니다.
최근 전송 작업 확인
storage_transfer.TransferOperation.deserialize
의 사용의 유의 사항.