Para garantir a elevada qualidade e a consistência com as nossas outras bibliotecas do Cloud, a documentação do Storage Transfer Service está agora a usar as bibliotecas cliente do Cloud em vez das bibliotecas cliente de APIs Google. Consulte o artigo Bibliotecas de cliente explicadas para mais informações sobre as duas opções.
A biblioteca cliente de APIs Google continua a receber atualizações, mas já não é referenciada na documentação.
Este guia aborda as principais diferenças no que diz respeito à utilização do Serviço de transferência de armazenamento e fornece instruções sobre a atualização dos seus clientes quando migrar para a biblioteca cliente do Google Cloud.
Java
A atualizar dependências
Para mudar para a nova biblioteca, substitua a 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 estiver a usar o Gradle sem a BOM, adicione o seguinte às suas 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>
Na maioria dos casos, o código pode ser convertido com bastante facilidade da biblioteca cliente da API para a biblioteca cliente da nuvem. Seguem-se algumas diferenças importantes entre os dois clientes Java
Instanciação do cliente
A biblioteca de cliente do Google Cloud reduz grande parte do código repetitivo associado à instanciação do cliente, processando-o nos bastidores.
Biblioteca 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 cliente da nuvem
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
Construtores para classes de modelos
As classes de modelos na biblioteca cliente do Google Cloud usam criadores em vez de construtores.
Biblioteca cliente da API
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Biblioteca cliente da nuvem
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
As operações de apresentação devolvem iteráveis
As operações de lista na biblioteca cliente da nuvem devolvem iteráveis simples em vez dos resultados paginados na biblioteca cliente da API.
Biblioteca 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 cliente da nuvem
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 os exemplos da biblioteca cliente da API antiga, em comparação com os respetivos exemplos equivalentes que usam a biblioteca cliente da Google Cloud. Se usou estes exemplos anteriormente, pode usar esta comparação para compreender como mover o seu código para a nova biblioteca de cliente do Google Cloud.
Transferência do Amazon S3
Biblioteca cliente da API
Biblioteca cliente da nuvem
Transferir para nearline
Biblioteca cliente da API
Biblioteca cliente da nuvem
Verifique a operação de transferência mais recente
Biblioteca cliente da API
Biblioteca cliente da nuvem
Python
A atualizar dependências
Para usar a nova biblioteca, adicione uma dependência em google-cloud-storage-transfer
.
Esta opção é usada em vez do cliente de descoberta 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 cliente da API
Biblioteca cliente da nuvem
Exemplos de comparações
Para ilustrar as diferenças entre as duas bibliotecas, seguem-se exemplos de clientes da API antigos lado a lado com os respetivos equivalentes na biblioteca de clientes da Google Cloud.
Transferência do Amazon S3
Biblioteca cliente da API
Biblioteca cliente da nuvem
Transferir para nearline
Biblioteca cliente da API
Biblioteca cliente da nuvem
Tenha em atenção a importação de google.protobuf.duration_pb2.Duration
.
Verifique a operação de transferência mais recente
Biblioteca cliente da API
Biblioteca cliente da nuvem
Tenha em atenção a utilização de storage_transfer.TransferOperation.deserialize