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.
Transferência do Amazon S3
Biblioteca de cliente da API
Biblioteca de cliente do Cloud
Transferir para Nearline
Biblioteca de cliente da API
Biblioteca de cliente do Cloud
Verificar a operação de transferência mais recente
Biblioteca de cliente da API
Biblioteca de cliente do Cloud
Python
Como atualizar dependências
Para usar a nova biblioteca, adicione uma dependência a google-cloud-storage-transfer
.
Ele será usado no lugar do discovery client de google-api-python-client
.
pip install --upgrade google-cloud-storage-transfer
Instanciação do cliente
Use o módulo storage_transfer
em vez de googleapiclient.discovery
.
Biblioteca de cliente da API
Biblioteca de cliente do Cloud
Exemplos de comparações
Para ilustrar as diferenças entre as duas bibliotecas, aqui estão as antigas amostras de clientes de API lado a lado com as equivalentes na biblioteca de cliente do Cloud.
Transferência do Amazon S3
Biblioteca de cliente da API
Biblioteca de cliente do Cloud
Transferir para Nearline
Biblioteca de cliente da API
Biblioteca de cliente do Cloud
Observe a importação de google.protobuf.duration_pb2.Duration
.
Verificar a operação de transferência mais recente
Biblioteca de cliente da API
Biblioteca de cliente do Cloud
Observe o uso de storage_transfer.TransferOperation.deserialize
.