Gestionar transferencias

En esta página se explica cómo gestionar las tareas y operaciones de transferencia.

Para crear una tarea de transferencia, consulte el artículo Crear transferencias.

Editar una configuración de transferencia

Puedes editar las siguientes propiedades de una transferencia:

  • Descripción de la tarea de transferencia
  • Credenciales de origen de Microsoft Azure Blob Storage o Amazon S3
  • Los filtros aplicados al trabajo de transferencia
  • Opciones para sobrescribir o eliminar archivos
  • La programación de la tarea de transferencia

CLI de gcloud

Para editar una configuración de transferencia, usa el comando gcloud transfer jobs update.

gcloud transfer jobs update \
  JOB_NAME \
  [options]

Donde:

  • JOB_NAME es el nombre único de la tarea que se va a actualizar.

  • Las opciones que se pueden actualizar se muestran al ejecutar gcloud transfer jobs update --help.

Por ejemplo, para actualizar el origen y el destino de un trabajo, y para eliminar su descripción, ejecuta el siguiente comando:

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

Google Cloud consola

Para editar una tarea de transferencia, siga estos pasos:

  1. En la Google Cloud consola, ve a la página Storage Transfer Service.

    Ir al Servicio de transferencia de Storage

  2. Haz clic en la descripción de la tarea de transferencia. Se mostrará la página Detalles de la tarea.

  3. Haz clic en Configuración. Se muestra la configuración de la tarea de transferencia.

  4. Para cambiar un elemento, haz clic en Editar junto al elemento.

  5. Para iniciar un trabajo con los cambios, haz clic en Iniciar ejecución.

REST

Para editar una configuración de transferencia, usa el método transferJobs.patch.

Ejecutar una tarea de transferencia desde una configuración actual

Puedes ejecutar una tarea de transferencia que ya tengas. De esta forma, puedes iniciar tareas que no tengan una programación o iniciar una tarea fuera de su programación.

CLI de gcloud

Para ejecutar una transferencia desde una configuración, usa gcloud transfer jobs run:

gcloud transfer jobs run JOB_NAME

Puedes especificar la marca opcional --no-async para bloquear otras tareas en tu terminal hasta que se complete la operación de transferencia.

Google Cloud consola

Para ejecutar una transferencia a partir de una configuración, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Storage Transfer Service.

    Ir al Servicio de transferencia de Storage

  2. Haz clic en la descripción de la tarea de transferencia. Se mostrará la página Detalles de la tarea.

  3. Para iniciar una tarea de transferencia, haz clic en Iniciar ejecución.

REST

Para ejecutar un trabajo de transferencia, utiliza el método transferJobs.run.

Monitorizar una tarea de transferencia

CLI de gcloud

Para monitorizar el progreso de un trabajo en tiempo real, usa gcloud transfer jobs monitor.

gcloud transfer jobs monitor JOB_NAME

La respuesta muestra la operación actual, la hora de inicio del trabajo y la cantidad de datos transferidos. También se contabilizan los bytes omitidos y los errores.

Cloud Monitoring

Consulta Monitorizar tareas de transferencia para obtener información sobre cómo usar Cloud Monitoring con el Servicio de transferencia de Storage.

Ver los detalles de una tarea de transferencia

CLI de gcloud

Para ver los detalles de una tarea de transferencia, usa gcloud transfer jobs describe:

gcloud transfer jobs describe JOB_NAME

Para ver la operación más reciente de este trabajo, pasa el valor de latestOperationName al comando operations describe:

gcloud transfer operations describe OPERATION_NAME

Para enumerar todas las operaciones de transferencia de un trabajo, usa el comando gcloud transfer operations list:

gcloud transfer operations list --job-names=JOB_NAME

Para ver las operaciones de varios trabajos, puede enumerarlos, separados por comas, como valor de --job-names. Omite --job-names para ver las operaciones de todos los trabajos.

Google Cloud consola

Puede ver los siguientes detalles de la tarea en la Google Cloud consola:

  • La descripción y el nombre del puesto
  • El tipo y la ubicación de la fuente
  • La ubicación de destino
  • Frecuencia de la tarea
  • Estadísticas de tareas

Para ver los detalles de una tarea de transferencia, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Storage Transfer Service.

    Ir al Servicio de transferencia de Storage

  2. Haz clic en la descripción de la tarea de transferencia. Se mostrará la página Detalles de la tarea.

Para ver los detalles de una ejecución concreta, haz clic en la Hora de inicio de la ejecución del trabajo. Se puede consultar la siguiente información sobre el trabajo:

  • Estado de transferencia
  • Horas de inicio y de finalización
  • Duración
  • Progreso
  • Datos transferidos
  • Número de errores
  • Datos omitidos
  • Velocidad media estimada

REST

Para ver los detalles de un trabajo de transferencia, usa el método transferJobs.get para devolver información sobre un trabajo de transferencia específico, como su ID de operación.

Bibliotecas de cliente

Se devuelve un recurso TransferJob cuando usas transferJobs.create.

Puedes consultar el estado de la transferencia después de crear el trabajo con transferJobs.get. Si se ha iniciado la operación de la tarea de transferencia, se devuelve un TransferJob que contiene un campo latestOperationName rellenado. De lo contrario, si la operación del trabajo de transferencia no se ha iniciado, el campo latestOperationName estará vacío.

Para comprobar el estado de un trabajo de transferencia

REST

Solicitud con 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

¿Buscas muestras anteriores? Consulta la guía de migración de Servicio de transferencia de 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

¿Buscas muestras anteriores? Consulta la guía de migración de Servicio de transferencia de 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 una tarea de transferencia

Puedes pausar una transferencia en curso. Cuando pausas la transferencia, se mantiene el estado del trabajo y puedes reanudarlo más tarde. Mientras una transferencia esté en pausa, la programación no activará la tarea para que se vuelva a ejecutar.

CLI de gcloud

Para pausar una tarea de transferencia, pasa el nombre de la operación actual de la tarea a gcloud transfer operations pause.

gcloud transfer operations pause OPERATION_NAME

Para reanudar una tarea de transferencia que se había pausado anteriormente, lo que reinicia la tarea en el mismo punto en el que se encontraba cuando se pausó, usa gcloud transfer operations resume.

gcloud transfer operations resume OPERATION_NAME

Google Cloud consola

Para pausar un trabajo de transferencia, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Storage Transfer Service.

    Ir al Servicio de transferencia de Storage

  2. Haz clic en la descripción de la tarea de transferencia. Se mostrará la página Detalles de la tarea.

  3. Haz clic en Pausar ejecución. El estado de la operación actual se muestra como Pausada.

Para reanudar una tarea de transferencia que se haya pausado previamente y que se reinicie en el mismo punto en el que se encontraba cuando se pausó, sigue estos pasos.

  1. En la Google Cloud consola, ve a la página Storage Transfer Service.

    Ir al Servicio de transferencia de Storage

  2. Haz clic en la descripción de la tarea de transferencia. Se mostrará la página Detalles de la tarea.

  3. Haz clic en Reanudar ejecución.

    El estado de la operación actual se muestra como En curso.

REST

Para pausar un trabajo de transferencia, usa el método transferOperations.pause.

Desactivar una tarea de transferencia

Si desactivas una tarea de transferencia, esta no podrá iniciar ninguna operación programada ni ninguna operación iniciada manualmente desde la consola. No impide que una tarea se inicie manualmente con la API o con el comando jobs rungcloud.

CLI de gcloud

Para desactivar una tarea de transferencia, cambia su estado a disabled.

gcloud transfer jobs update JOB_NAME --status=disabled

Para reactivar un trabajo, define --status=enabled.

Google Cloud consola

Para desactivar una tarea de transferencia, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Storage Transfer Service.

    Ir al Servicio de transferencia de Storage

  2. Haz clic en la descripción de la tarea de transferencia. Se mostrará la página Detalles de la tarea.

  3. Haz clic en Inhabilitar trabajo. Se muestra el cuadro de diálogo ¿Inhabilitar la tarea de transferencia?.

  4. Lee el cuadro de diálogo y confirma la desactivación del trabajo haciendo clic en Confirmar.

    En la parte superior de la página Detalles de la tarea, se muestra un aviso que te recuerda que la tarea está desactivada.

REST

Usa el método transferJobs.patch para definir el estado de la tarea de transferencia como DISABLED.

Eliminar una tarea de transferencia

Puedes eliminar las tareas de transferencia que ya no necesites. Al eliminar un trabajo, ocurre lo siguiente:

  • Detiene las transferencias que formen parte de la tarea.
  • Detiene las transferencias periódicas que forman parte de la tarea.
  • Borra los detalles de configuración del trabajo.

Si eliminas un trabajo, será de forma permanente. Una vez que elimines la tarea de transferencia, se quitará de la lista de tareas de transferencia. La información de los trabajos de transferencia se elimina por completo de Storage Transfer Service al cabo de 30 días.

También puedes desactivar la tarea de transferencia, lo que hará que la tarea siga apareciendo en la página Tareas y te permitirá reactivarla o modificarla.

CLI de gcloud

Para eliminar una tarea de transferencia, usa gcloud transfer jobs delete.

gcloud transfer jobs delete JOB_NAME

Google Cloud consola

Para eliminar una tarea de transferencia, siga estos pasos:

  1. En la Google Cloud consola, ve a la página Storage Transfer Service.

    Ir al Servicio de transferencia de Storage

  2. Marca la casilla situada junto al trabajo de transferencia que quieras eliminar.

  3. Haz clic en Eliminar trabajo.

    Se muestra el cuadro de diálogo ¿Eliminar la tarea de transferencia?

  4. Lee el cuadro de diálogo y, a continuación, confirma la eliminación del trabajo escribiendo el nombre que se le ha asignado automáticamente en el campo y haciendo clic en Eliminar.

    El trabajo se elimina de la página Trabajos.

REST

Para eliminar un trabajo de transferencia mediante la API REST, consulta la referencia de transferJobs.delete.

Ver detalles del error

Si se producen errores durante una ejecución de transferencia, puedes ver los detalles del error para ayudarte a solucionarlo.

Para ver los detalles de los errores de una ejecución de una tarea de transferencia, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Storage Transfer Service.

    Ir al Servicio de transferencia de Storage

  2. Haz clic en la descripción de la tarea de transferencia. Se mostrará la página Detalles de la tarea.

  3. Para ver los detalles de un trabajo, haz una de las siguientes acciones:

    • Última ejecución del trabajo: haz clic en el botón Ver detalles del error o en el enlace Ver detalles del error. Se mostrará la página Detalles del error.

    • Ejecución de tarea histórica:

      1. Haz clic en la Hora de inicio de la ejecución de la tarea.

        Se mostrará la página Detalles de la ejecución.

      2. Haz clic en el enlace Ver detalles del error.

        Se mostrará la página Detalles del error.

  4. Para ver más detalles sobre cada error, haz clic en Mostrar más.

  5. Para filtrar errores, introduzca las propiedades que quiera filtrar en el campo Introduce el nombre o el valor de la propiedad.

    Cuando colocas el cursor en el campo, se muestra un menú desplegable con opciones relevantes para ayudarte a crear el filtro.