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

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

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.

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.

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.

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.

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

Monitorar um job de transferência

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.

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

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.

É 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

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.

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

Solicitação usando transferJobs get:
GET https://storagetransfer.googleapis.com/v1/{jobName="name"}
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
	}
}

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.");
    }
  }
}

// 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();

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.

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

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.

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.

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.

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.

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.

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

gcloud transfer jobs delete JOB_NAME

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.

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.