כדי להבטיח איכות גבוהה ולשמור על עקביות עם ספריות Cloud אחרות, במסמכי התיעוד של Storage Transfer Service אנחנו משתמשים עכשיו בספריות הלקוח של Cloud במקום בספריות הלקוח של Google API. מידע נוסף על שתי האפשרויות זמין במאמר הסבר על ספריות לקוח.
ספריית הלקוח של Google API ממשיכה לקבל עדכונים, אבל היא כבר לא מוזכרת במסמכי התיעוד.
במדריך הזה מוסבר על ההבדלים העיקריים שרלוונטיים לשימוש ב-Storage Transfer Service, ומופיעות בו הוראות לעדכון הלקוחות כשעוברים ל-Cloud Client Library.
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>אם משתמשים ב-Gradle בלי BOM, צריך להוסיף אותו ליחסי התלות:
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();
Builders for model classes
במקום בבנאים, מחלקות מודל בספריית הלקוח של Cloud משתמשות ב-builders.
ספריית לקוח ל-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