Para garantir a alta qualidade e a consistência com nossas outras bibliotecas do Cloud, a documentação do Serviço de transferência do Cloud Storage agora usa as Bibliotecas de cliente do Cloud em vez das Bibliotecas cliente da API do Google. Consulte as Explicações sobre bibliotecas de clientes para mais informações sobre as duas opções.
A biblioteca de cliente da API do Google continua a receber atualizações, mas não é mais mencionada na documentação.
Neste guia, abordamos as principais diferenças conforme se aplicam ao uso do Serviço de transferência do Cloud Storage e fornecemos instruções sobre como atualizar seus clientes ao migrar para a biblioteca de cliente do Cloud.
Java
Como atualizar dependências
Para alternar para a nova biblioteca, substitua sua dependência de
google-api-services-storagetransfer por google-cloud-storage-transfer.
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage-transfer</artifactId>
<version>0.2.3</version>
</dependency>Se você estiver usando o Gradle sem BOM, adicione isto às dependências:
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>
Em sua maioria, o código pode ser facilmente convertido da Biblioteca de cliente da API para a Biblioteca de cliente do Cloud. Veja a seguir algumas das principais diferenças entre os dois clientes Java
Instanciação do cliente
A biblioteca de cliente do Cloud reduz grande parte do código boilerplate associado à instanciação do cliente manipulando-o nos bastidores.
Biblioteca de cliente da 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();
Biblioteca de cliente do Cloud
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
Builders para classes de modelo
As classes de modelo na biblioteca de cliente do Cloud usam builders em vez de construtores.
Biblioteca de cliente da API
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Biblioteca de cliente do Cloud
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
As operações de listagem retornam iteráveis
As operações de listagem na biblioteca de cliente do Cloud retornam iteráveis simples em vez dos resultados paginados na biblioteca de cliente da API.
Biblioteca de cliente da 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();
}
}
Biblioteca de cliente do 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);
}
}
}
Exemplos de comparações
Aqui, incluímos as amostras antigas da biblioteca de cliente da API, em comparação com as amostras equivalentes que usam a biblioteca de cliente do Cloud. Se você já usou esses exemplos, pode usar essa comparação para entender como mover o código para a nova biblioteca de cliente do Cloud.