מעבר לספריית הלקוח של Cloud Storage Transfer Service

כדי להבטיח איכות גבוהה ולשמור על עקביות עם ספריות 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