כדי להבטיח איכות גבוהה ולשמור על עקביות עם ספריות 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>אם משתמשים ב-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();
בוני מודלים של כיתות
במקום בבנאים, מחלקות מודל בספריית הלקוח של 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(job);
}
}
}
דוגמאות להשוואות
ריכזנו כאן דוגמאות ישנות של ספריות לקוח API, בהשוואה לדוגמאות מקבילות באמצעות ספריית הלקוח של Cloud. אם השתמשתם בדוגמאות האלה בעבר, תוכלו להשתמש בהשוואה הזו כדי להבין איך להעביר את הקוד לספריית הלקוח החדשה של 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
יצירת מופע של לקוח
במקום זאת, צריך להשתמש במודול storage_transfer.googleapiclient.discovery
ספריית לקוח ל-API
ספריית לקוח ב-Cloud
דוגמאות להשוואות
כדי להמחיש את ההבדלים בין שתי הספריות, הנה דוגמאות ישנות של לקוחות API לצד הדוגמאות המקבילות שלהן בספריית הלקוח של Cloud.
העברה מ-Amazon S3
ספריית לקוח ל-API
ספריית לקוח ב-Cloud
העברה ל-Nearline
ספריית לקוח ל-API
ספריית לקוח ב-Cloud
שימו לב לייבוא של google.protobuf.duration_pb2.Duration.
בדיקת פעולת ההעברה האחרונה
ספריית לקוח ל-API
ספריית לקוח ב-Cloud
שימו לב לשימוש ב-storage_transfer.TransferOperation.deserialize