Administra transferencias

En esta página, se muestra cómo administrar los trabajos y las operaciones de transferencia existentes.

Para crear un trabajo de transferencia nuevo, consulta Crea transferencias.

Edita una configuración de transferencia

Puedes editar las siguientes propiedades de una transferencia existente:

  • La descripción del trabajo de transferencia
  • Credenciales de origen de Microsoft Blob Storage o Amazon S3
  • Cualquier filtro aplicado al trabajo de transferencia
  • Opciones para reemplazar o borrar archivos
  • La programación del trabajo de transferencia

CLI de gcloud

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

gcloud transfer jobs update \
  JOB_NAME \
  [options]

Aquí:

  • JOB_NAME es el nombre único del trabajo que se actualizará.

  • Las opciones que se pueden actualizar se enumeran si ejecutas gcloud transfer jobs update --help.

Por ejemplo, para actualizar la fuente y el destino de un trabajo y quitar 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

Consola de Google Cloud

Para editar un trabajo de transferencia, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Servicio de transferencia de almacenamiento.

    Ir al Servicio de transferencia de almacenamiento

  2. Haz clic en la descripción del trabajo de transferencia. Aparecerá la página Detalles del trabajo.

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

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

  5. Para iniciar un trabajo con las ediciones, haz clic en Iniciar una ejecución.

REST

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

Ejecuta un trabajo de transferencia desde una configuración existente

Puedes ejecutar un trabajo de transferencia existente. Esto te permite iniciar trabajos que no tienen una programación o iniciar un trabajo fuera de su programación.

CLI de gcloud

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

gcloud transfer jobs run JOB_NAME

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

Consola de Google Cloud

Para ejecutar una transferencia desde una configuración existente, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Servicio de transferencia de almacenamiento.

    Ir al Servicio de transferencia de almacenamiento

  2. Haz clic en la descripción del trabajo de transferencia. Aparecerá la página Detalles del trabajo.

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

REST

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

Supervisa un trabajo de transferencia

CLI de gcloud

Para supervisar 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 cuentan los bytes y errores omitidos.

Cloud Monitoring

Consulta Supervisa los trabajos de transferencia para obtener detalles sobre el uso de Cloud Monitoring con el Servicio de transferencia de almacenamiento.

Visualiza los detalles del trabajo de transferencia

CLI de gcloud

Para ver los detalles del trabajo 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

Puedes ver las operaciones para varios trabajos si las enumeras, separadas por comas, como el valor de --job-names. Omite --job-names para ver las operaciones de todos los trabajos.

Consola de Google Cloud

Puedes ver los siguientes detalles del trabajo desde la consola de Google Cloud:

  • El nombre y la descripción del trabajo
  • El tipo y la ubicación de la fuente
  • La ubicación de destino
  • Frecuencia del trabajo
  • Estatística del trabajo

Para ver los detalles del trabajo, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Servicio de transferencia de almacenamiento.

    Ir al Servicio de transferencia de almacenamiento

  2. Haz clic en la descripción del trabajo de transferencia. Aparecerá la página Detalles del trabajo.

Para mostrar los detalles de una ejecución en particular, haz clic en la Hora de inicio de la ejecución del trabajo. La siguiente información de trabajo está disponible:

  • Estado de transferencia
  • Tiempos de inicio y detención
  • Duración
  • Progreso
  • Datos transferidos
  • Cantidad de errores
  • Datos omitidos
  • Estimación de velocidad promedio

REST

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

Bibliotecas cliente

Se muestra un recurso TransferJob cuando usas transferJobs.create.

Puedes verificar el estado de la transferencia después de crear el trabajo con transferJobs.get. Si se inició la operación del trabajo de transferencia, se mostrará un TransferJob con un campo latestOperationName propagado. De lo contrario, si la operación del trabajo de transferencia no se ha iniciado, el campo latestOperationName estará en blanco.

Para verificar el estado de un trabajo de transferencia

REST

Realiza la 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 del Servicio de transferencia de almacenamiento.


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 del Servicio de transferencia de almacenamiento.

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

Pausa un trabajo de transferencia

Puedes pausar una transferencia en curso en este momento. 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á el trabajo para volver a ejecutarse.

CLI de gcloud

Para pausar un trabajo de transferencia, pasa el nombre de la operación actual del trabajo a gcloud transfer operations pause.

gcloud transfer operations pause OPERATION_NAME

Para reanudar un trabajo de transferencia en pausa, lo que reinicia el trabajo en el mismo lugar en el que se encontraba detenido, usa gcloud transfer operations resume.

gcloud transfer operations resume OPERATION_NAME

Consola de Google Cloud

Para pausar un trabajo de transferencia, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Servicio de transferencia de almacenamiento.

    Ir al Servicio de transferencia de almacenamiento

  2. Haz clic en la descripción del trabajo de transferencia. Aparecerá la página Detalles del trabajo.

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

Para reanudar un trabajo de transferencia que estaba pausado, reinicia el trabajo en el mismo lugar en el que estaba cuando se detuvo, sigue estos pasos.

  1. En la consola de Google Cloud, ve a la página Servicio de transferencia de almacenamiento.

    Ir al Servicio de transferencia de almacenamiento

  2. Haz clic en la descripción del trabajo de transferencia. Aparecerá la página Detalles del trabajo.

  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.

Desactiva un trabajo de transferencia

Desactivar un trabajo de transferencia evita que el trabajo de transferencia inicie más operaciones programadas o que las operaciones se inician de forma manual desde la consola. No impide que un trabajo se inicie de forma manual con la API o con el comando de gcloud jobs run.

CLI de gcloud

Para desactivar un trabajo de transferencia, actualiza el estado del trabajo a disabled.

gcloud transfer jobs update JOB_NAME --status=disabled

Para volver a activar un trabajo, configura --status=enabled.

Consola de Google Cloud

Para desactivar un trabajo de transferencia, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Servicio de transferencia de almacenamiento.

    Ir al Servicio de transferencia de almacenamiento

  2. Haz clic en la descripción del trabajo de transferencia. Aparecerá la página Detalles del trabajo.

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

  4. Lee el cuadro de diálogo y, luego, haz clic en Confirmar para confirmar la desactivación del trabajo.

    Se muestra una notificación en la parte superior de la página Detalles del trabajo que te recuerda que el trabajo está desactivado.

REST

Usa el método transferJobs.patch para establecer el estado del trabajo de transferencia en DISABLED.

Borra un trabajo de transferencia

Puedes borrar trabajos de transferencia que ya no necesites. Borrar un trabajo hace lo siguiente:

  • Detiene todas las transferencias existentes que forman parte del trabajo.
  • Detiene cualquier transferencia recurrente que forma parte del trabajo.
  • Borra los detalles de configuración del trabajo.

La eliminación de un trabajo es permanente. Una vez que borres el trabajo de transferencia, se quitará de la lista de trabajos de transferencia. La información del trabajo de transferencia se borra por completo del Servicio de transferencia de almacenamiento después de 30 días.

Como alternativa, puedes desactivar el trabajo de transferencia, lo que mantiene el trabajo enumerado en la página Trabajos y te permite reactivar o modificar el trabajo.

CLI de gcloud

Para borrar un trabajo de transferencia, usa gcloud transfer jobs delete.

gcloud transfer jobs delete JOB_NAME

Consola de Google Cloud

Para borrar un trabajo de transferencia, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Servicio de transferencia de almacenamiento.

    Ir al Servicio de transferencia de almacenamiento

  2. Selecciona la casilla de verificación junto al trabajo de transferencia que deseas borrar.

  3. Haz clic en BORRAR TRABAJO

    Se muestra el cuadro de diálogo ¿Borrar trabajo de transferencia?

  4. Lee el cuadro de diálogo y, luego, escribe el nombre asignado de forma automática en el campo para confirmar la eliminación del trabajo y haz clic en Borrar.

    El trabajo se quita de la página Trabajos.

REST

Para borrar un trabajo de transferencia con la API de REST, consulta la referencia de transferJobs.delete.

Ver detalles del error

Si encuentras errores durante una ejecución de la transferencia, puedes ver los detalles del error para ayudar a solucionar el error.

Para ver los detalles del error de una ejecución del trabajo de transferencia, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Servicio de transferencia de almacenamiento.

    Ir al Servicio de transferencia de almacenamiento

  2. Haz clic en la descripción del trabajo de transferencia. Aparecerá la página Detalles del trabajo.

  3. Realiza una de las siguientes acciones para mostrar los detalles del trabajo:

    • Ejecución más reciente del trabajo: Haz clic en el botón Ver detalles del error o en el vínculo Ver detalles del error. Se muestra la página Detalles del error.

    • Historial de ejecución de trabajos:

      1. Haz clic en la hora de inicio de la ejecución del trabajo.

        Se muestra la página Detalle de la ejecución.

      2. Haz clic en el vínculo Ver detalles del error.

        Se muestra la página Detalles del error.

  4. Para mostrar detalles adicionales sobre cada error que se muestra, haz clic en Expandir más.

  5. Para filtrar errores, ingresa las propiedades que se filtrarán en el campo Ingresar nombre o valor de propiedad.

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