높은 품질과 다른 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 클라이언트 라이브러리는 클라이언트 인스턴스화와 관련된 상용구를 상당 부분 줄여 백그라운드에서 처리합니다.
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.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();
}
}
Cloud 클라이언트 라이브러리
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에서 전송
API 클라이언트 라이브러리
Cloud 클라이언트 라이브러리
Nearline으로 전달
API 클라이언트 라이브러리
Cloud 클라이언트 라이브러리
최근 전송 작업 확인
API 클라이언트 라이브러리
Cloud 클라이언트 라이브러리
Python
종속 항목 업데이트
새 라이브러리를 사용하려면 google-cloud-storage-transfer
의 종속 항목을 추가합니다.
이것은 google-api-python-client
의 검색 클라이언트 대신 사용됩니다.
pip install --upgrade google-cloud-storage-transfer
클라이언트 인스턴스화
googleapiclient.discovery
대신 storage_transfer
모듈을 사용합니다.
API 클라이언트 라이브러리
Cloud 클라이언트 라이브러리
샘플 비교
다음은 두 라이브러리의 차이점을 설명하기 위해 이전 API 클라이언트 샘플을 Cloud 클라이언트 라이브러리에 상응하는 샘플과 나란히 보여줍니다.
Amazon S3에서 전송
API 클라이언트 라이브러리
Cloud 클라이언트 라이브러리
Nearline으로 전달
API 클라이언트 라이브러리
Cloud 클라이언트 라이브러리
google.protobuf.duration_pb2.Duration
의 가져오기를 참고합니다.
최근 전송 작업 확인
API 클라이언트 라이브러리
Cloud 클라이언트 라이브러리
storage_transfer.TransferOperation.deserialize
의 사용의 유의 사항.