Gerenciar transferências

Nesta página, mostramos como gerenciar operações e jobs de transferência.

Para criar um novo job de transferência, consulte Criar transferências.

Editar uma configuração de transferência

É possível editar as seguintes propriedades de uma transferência:

  • A descrição do job de transferência
  • Armazenamento de Blobs do Microsoft Azure ou credenciais de origem do Amazon S3
  • Todos os filtros aplicados ao job de transferência
  • Opções para substituir ou excluir arquivos
  • A programação do job de transferência

CLI gcloud

Para editar uma configuração de transferência existente, use o comando gcloud transfer jobs update.

gcloud transfer jobs update \
  JOB_NAME \
  [options]

Em que:

  • JOB_NAME é o nome exclusivo do job a ser atualizado.

  • As opções que podem ser atualizadas são listadas executando gcloud transfer jobs update --help.

Por exemplo, para atualizar a origem e o destino de um job e remover a descrição dele, execute o seguinte comando:

gcloud transfer jobs update \
  JOB_NAME \
  --source=gs://new-bucket-1 \
  --destination=gs://new-bucket-2 \
  --clear-description

Console do Google Cloud

Para editar um job de transferência, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Serviço de transferência do Cloud Storage.

    Acessar o Serviço de transferência do Cloud Storage

  2. Clique na descrição do job de transferência. Será exibida a página Detalhes do job.

  3. Clique em Configuração. A configuração do job de transferência é exibida.

  4. Para alterar um item, clique em Editar ao lado dele.

  5. Para iniciar um job com as edições, clique em Iniciar uma execução.

REST

Para editar uma configuração de transferência, use o método transferJobs.patch.

Executar um job de transferência a partir de uma configuração existente

É possível executar um job de transferência. Isso permite que você inicie jobs que não tenham programação ou inicie um job fora da programação.

CLI gcloud

Para executar uma transferência a partir de uma configuração existente, use gcloud transfer jobs run:

gcloud transfer jobs run JOB_NAME

A sinalização --no-async opcional pode ser especificada para bloquear outras tarefas no seu terminal até que a operação de transferência seja concluída.

Console do Google Cloud

Para executar uma transferência a partir de uma configuração existente, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Serviço de transferência do Cloud Storage.

    Acessar o Serviço de transferência do Cloud Storage

  2. Clique na descrição do job de transferência. Será exibida a página Detalhes do job.

  3. Para iniciar um job de transferência, clique em Iniciar uma execução.

REST

Para executar um job de transferência, use o método transferJobs.run.

Monitorar um job de transferência

CLI gcloud

Para monitorar o andamento de um job em tempo real, use gcloud transfer jobs monitor.

gcloud transfer jobs monitor JOB_NAME

A resposta mostra a operação atual, o horário de início do job e a quantidade de dados transferidos. Bytes e erros ignorados também são contados.

Cloud Monitoring

Consulte Monitorar jobs de transferência para detalhes sobre como usar o Cloud Monitoring com o Serviço de transferência do Cloud Storage.

Ver detalhes do job de transferência

CLI gcloud

Para visualizar os detalhes do job de transferência, use gcloud transfer jobs describe:

gcloud transfer jobs describe JOB_NAME

Para ver a operação mais recente desse job, transmita o valor de latestOperationName para o comando operations describe:

gcloud transfer operations describe OPERATION_NAME

Para listar todas as operações de transferência de um job, use o comando gcloud transfer operations list:

gcloud transfer operations list --job-names=JOB_NAME

Para ver as operações de vários jobs, liste-os, separados por vírgulas, como o valor de --job-names. Omita --job-names para ver as operações de todos os jobs.

Console do Google Cloud

É possível visualizar os seguintes detalhes do job no console do Google Cloud:

  • A descrição e o nome do job
  • O tipo e o local da origem
  • O local de destino
  • Frequência do job
  • Estatísticas do job

Para visualizar os detalhes do job de transferência, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Serviço de transferência do Cloud Storage.

    Acessar o Serviço de transferência do Cloud Storage

  2. Clique na descrição do job de transferência. Será exibida a página Detalhes do job.

Para exibir os detalhes de uma execução específica, clique no Horário de início da execução do job. As seguintes informações de job estão disponíveis:

  • Status da transferência
  • Horários de início e término
  • Duração
  • Progresso
  • Dados transferidos
  • Número de erros
  • Dados pulados
  • Estimativa de velocidade média

REST

Para ver os detalhes de um job de transferência, use o método transferJobs.get para pesquisar as informações de um job de transferência específico, como o ID de operação.

Bibliotecas de cliente

Um recurso TransferJob é retornado quando você usa transferJobs.create.

É possível verificar o status da transferência depois de criar o job usando transferJobs.get. Se a operação do job de transferência tiver sido iniciada, isso retornará um TransferJob contendo um latestOperationName preenchido. Caso contrário, se a operação do job de transferência não tiver sido iniciada, o campo latestOperationName estará vazio.

Para verificar o status de um job de transferência

REST

Solicitação usando transferJobs get:
GET https://storagetransfer.googleapis.com/v1/{jobName="name"}

Go

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/longrunning/autogen/longrunningpb"
	storagetransfer "cloud.google.com/go/storagetransfer/apiv1"
	"cloud.google.com/go/storagetransfer/apiv1/storagetransferpb"
)

func checkLatestTransferOperation(w io.Writer, projectID string, jobName string) (*storagetransferpb.TransferOperation, error) {
	// Your Google Cloud Project ID
	// projectID := "my-project-id"

	// The name of the job whose latest operation to check
	// jobName := "transferJobs/1234567890"
	ctx := context.Background()
	client, err := storagetransfer.NewClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("storagetransfer.NewClient: %w", err)
	}
	defer client.Close()

	job, err := client.GetTransferJob(ctx, &storagetransferpb.GetTransferJobRequest{
		JobName:   jobName,
		ProjectId: projectID,
	})
	if err != nil {
		return nil, fmt.Errorf("failed to get transfer job: %w", err)
	}

	latestOpName := job.LatestOperationName
	if latestOpName != "" {
		lro, err := client.LROClient.GetOperation(ctx, &longrunningpb.GetOperationRequest{
			Name: latestOpName,
		})
		if err != nil {
			return nil, fmt.Errorf("failed to get transfer operation: %w", err)
		}
		latestOp := &storagetransferpb.TransferOperation{}
		lro.Metadata.UnmarshalTo(latestOp)

		fmt.Fprintf(w, "the latest transfer operation for job %q is: \n%v", jobName, latestOp)
		return latestOp, nil
	} else {
		fmt.Fprintf(w, "Transfer job %q hasn't run yet, try again later", jobName)
		return nil, nil
	}
}

Java

Procurando amostras mais antigas? Consulte o Guia de migração do Serviço de transferência do Cloud Storage.


import com.google.longrunning.Operation;
import com.google.storagetransfer.v1.proto.StorageTransferServiceClient;
import com.google.storagetransfer.v1.proto.TransferProto.GetTransferJobRequest;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferJob;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferOperation;
import java.io.IOException;

public class CheckLatestTransferOperation {

  // Gets the requested transfer job and checks its latest operation
  public static void checkLatestTransferOperation(String projectId, String jobName)
      throws IOException {
    // Your Google Cloud Project ID
    // String projectId = "your-project-id";

    // The name of the job to check
    // String jobName = "myJob/1234567890";

    StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

    // Get transfer job and check latest operation
    TransferJob transferJob =
        storageTransfer.getTransferJob(
            GetTransferJobRequest.newBuilder().setJobName(jobName).setProjectId(projectId).build());
    String latestOperationName = transferJob.getLatestOperationName();

    if (!latestOperationName.isEmpty()) {
      Operation operation = storageTransfer.getOperationsClient().getOperation(latestOperationName);
      TransferOperation latestOperation =
          TransferOperation.parseFrom(operation.getMetadata().getValue());

      System.out.println("The latest operation for transfer job " + jobName + " is:");
      System.out.println(latestOperation.toString());

    } else {
      System.out.println(
          "Transfer job "
              + jobName
              + " hasn't run yet,"
              + " try again once the job starts running.");
    }
  }
}

Node.js


// Imports the Google Cloud client library
const {
  StorageTransferServiceClient,
} = require('@google-cloud/storage-transfer');

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The ID of the Google Cloud Platform Project that owns the job
// projectId = 'my-project-id'

// Storage Transfer Service job name
// jobName = 'transferJobs/1234567890'

// Creates a client
const client = new StorageTransferServiceClient();

/**
 * Checks the latest transfer operation for a given transfer job.
 */
async function checkLatestTransferOperation() {
  const [transferJob] = await client.getTransferJob({projectId, jobName});

  if (transferJob.latestOperationName) {
    const [transferOperation] = await client.operationsClient.getOperation({
      name: transferJob.latestOperationName,
    });

    const operation = JSON.stringify(transferOperation, null, 2);

    console.log(`Latest transfer operation for '${jobName}': ${operation}`);
  } else {
    console.log(`Transfer job '${jobName}' has not ran yet.`);
  }
}

checkLatestTransferOperation();

Python

Procurando amostras mais antigas? Consulte o Guia de migração do Serviço de transferência do Cloud Storage.

from google.cloud import storage_transfer


def check_latest_transfer_operation(project_id: str, job_name: str):
    """Checks the latest transfer operation for a given transfer job."""

    client = storage_transfer.StorageTransferServiceClient()

    # The ID of the Google Cloud Platform Project that owns the job
    # project_id = 'my-project-id'

    # Storage Transfer Service job name
    # job_name = 'transferJobs/1234567890'

    transfer_job = client.get_transfer_job(
        {
            "project_id": project_id,
            "job_name": job_name,
        }
    )

    if transfer_job.latest_operation_name:
        response = client.transport.operations_client.get_operation(
            transfer_job.latest_operation_name
        )
        operation = storage_transfer.TransferOperation.deserialize(
            response.metadata.value
        )

        print(f"Latest transfer operation for `{job_name}`: {operation}")
    else:
        print(f"Transfer job {job_name} has not ran yet.")

Pausar um job de transferência

Você pode pausar uma transferência em andamento. Quando você pausa a transferência, o estado do job é mantido, e é possível retomá-lo mais tarde. Enquanto uma transferência estiver pausada, a programação não acionará o job para ser executada novamente.

CLI gcloud

Para pausar um job de transferência, transmita o nome da operação atual do job para gcloud transfer operations pause.

gcloud transfer operations pause OPERATION_NAME

Para retomar um job de transferência pausado anteriormente, que reinicia o job no mesmo local em que estava quando foi pausado, use gcloud transfer operations resume.

gcloud transfer operations resume OPERATION_NAME

Console do Google Cloud

Para pausar um job de transferência, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Serviço de transferência do Cloud Storage.

    Acessar o Serviço de transferência do Cloud Storage

  2. Clique na descrição do job de transferência. Será exibida a página Detalhes do job.

  3. Clique em Pausar execução. O status da operação atual é exibido como Pausado.

Para retomar um job de transferência pausado anteriormente, reinicie-o no mesmo local em que estava pausado, siga estas etapas.

  1. No Console do Google Cloud, acesse a página Serviço de transferência do Cloud Storage.

    Acessar o Serviço de transferência do Cloud Storage

  2. Clique na descrição do job de transferência. Será exibida a página Detalhes do job.

  3. Clique em Retomar execução.

    O status da operação atual é exibido como Em andamento.

REST

Para pausar um job de transferência, use o método transferOperations.pause.

Desativar um job de transferência

Desativar um job de transferência impede que o job inicie outras operações programadas ou as operações iniciadas manualmente no console. Isso não impede que um job seja iniciado manualmente com a API ou com o comando gcloud jobs run.

CLI gcloud

Para desativar um job de transferência, atualize o status dele para disabled.

gcloud transfer jobs update JOB_NAME --status=disabled

Para reativar um job, defina --status=enabled.

Console do Google Cloud

Para desativar um job de transferência, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Serviço de transferência do Cloud Storage.

    Acessar o Serviço de transferência do Cloud Storage

  2. Clique na descrição do job de transferência. Será exibida a página Detalhes do job.

  3. Clique em Desativar job. A caixa de diálogo Desativar job de transferência? é exibida.

  4. Leia a caixa de diálogo e confirme a desativação do job clicando em Confirmar.

    Um aviso na parte superior da página Detalhes do job é exibido para lembrar que o job está desativado.

REST

Use o método transferJobs.patch para definir o status do job de transferência como DISABLED.

Excluir um job de transferência

É possível excluir jobs de transferência que não são mais necessários. A exclusão de um job faz o seguinte:

  • Interrompe todas as transferências existentes que fazem parte do job.
  • Interrompe as transferências recorrentes que fazem parte do job.
  • Apaga os detalhes de configuração do job.

A exclusão de um job é permanente. Depois de excluir o job, ele será removido da lista. As informações do job de transferência são totalmente excluídas do serviço de transferência do Cloud Storage após 30 dias.

Como alternativa, é possível desativar o job de transferência, o que mantém o job listado na página Jobs e permite que você reative ou modifique o job.

CLI gcloud

Para excluir um job de transferência, use gcloud transfer jobs delete.

gcloud transfer jobs delete JOB_NAME

Console do Google Cloud

Para excluir um job de transferência, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Serviço de transferência do Cloud Storage.

    Acessar o Serviço de transferência do Cloud Storage

  2. Marque a caixa de seleção ao lado do job de transferência que você quer excluir.

  3. Clique em Excluir job.

    A caixa de diálogo Excluir job de transferência? é exibida.

  4. Leia a caixa de diálogo, confirme a exclusão do job digitando o nome atribuído automaticamente no campo e clique em Excluir.

    O job é removido da página Jobs.

REST

Para excluir um job de transferência usando a API REST, consulte a referência transferJobs.delete.

Ver detalhes do erro

Se você encontrar erros durante uma execução de transferência, veja detalhes para ajudar a resolvê-lo.

Para visualizar os detalhes do erro de uma execução de job de transferência, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Serviço de transferência do Cloud Storage.

    Acessar o Serviço de transferência do Cloud Storage

  2. Clique na descrição do job de transferência. Será exibida a página Detalhes do job.

  3. Siga um destes procedimentos para exibir detalhes do job:

    • Execução de job mais recente: clique no botão Ver detalhes do erro ou no link Ver detalhes do erro A página Detalhes do erro será exibida.

    • Execução de job histórico:

      1. Clique no Horário de início da execução do job.

        Será exibida a página Detalhes da execução.

      2. Clique no link Ver detalhes do erro.

        A página Detalhes do erro será exibida.

  4. Para exibir mais detalhes sobre cada erro exibido, clique em Expandir mais.

  5. Para filtrar erros, insira as propriedades a serem filtradas no campo Digite o nome ou o valor da propriedade.

    Quando você coloca o cursor no campo, é exibido um menu suspenso com opções relevantes para ajudar você a criar seu filtro.