En esta página, se muestra cómo usar el Servicio de transferencia de almacenamiento de forma directa a través de la API de REST y, de manera programática, con Java y Python en dos situaciones comunes. Consulta Crea y administra las transferencias con Console para crear un trabajo de transferencia con Google Cloud Console.
Cuando configures o edites trabajos de transferencia de manera programática con la API de Storage Transfer, la hora debe estar en UTC. Para obtener más información sobre cómo especificar el programa de un trabajo de transferencia, consulta Programa.
Antes de comenzar
Antes de crear un trabajo de transferencia, sigue estos pasos:
Verifica que tengas acceso al Servicio de transferencia de almacenamiento. Para ello, revisa que tengas asignada una de las siguientes funciones:
- funciones/propietario
- funciones/editor
- roles/storagetransfer.admin
- roles/storagetransfer.user
Un rol personalizado que incluye, como mínimo, permisos roles/storagetransfer.user.
Para obtener más información sobre cómo agregar y ver permisos a nivel de proyecto, consulte Uso de permisos de IAM con proyectos.
Para obtener más información, consulta Soluciona problemas de acceso.
Para obtener más información sobre los permisos y las funciones de IAM en el Servicio de transferencia de almacenamiento, consulta Control de acceso con permisos y funciones de IAM.
Transferencias desde Amazon S3 a Cloud Storage
En este ejemplo, aprenderás cómo mover archivos desde Amazon S3 a un bucket de Cloud Storage. Asegúrate de revisar Configura el acceso y Precios para comprender lo que implica trasladar datos desde Amazon S3 hasta Cloud Storage.
Para crear el trabajo de transferencia, sigue estos pasos:
Cuando crees trabajos de transferencia, no incluyas el prefijo s3://
para bucketName
en los nombres de fuentes de buckets de Amazon S3.
REST
Realiza la solicitud con transferJobs create:POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "scheduleEndDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }Respuesta:
200 OK { "transferJob": [ { "creationTime": "2015-01-01T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2015-01-01T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "scheduleEndDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" }, "objectConditions": {}, "transferOptions": {} } } ] }
Java
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Python
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Transferencia entre Microsoft Azure Blob Storage y Cloud Storage
En este ejemplo, aprenderá cómo mover archivos de Microsoft Azure Storage a un bucket de Cloud Storage, con un token de acceso compartido (SAS) de Microsoft Azure Storage.
Para obtener más información sobre Microsoft SAS de Azure Storage, consulta Conceder acceso limitado a los recursos de Azure Storage mediante firmas de acceso compartido (SAS).
Antes de comenzar a revisar Configura el acceso y Precios para comprender lo que implica trasladar datos desde Microsoft Azure Storage a Cloud Storage.
REST
Realiza la solicitud con transferJobs create:POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 14, "month": 2, "year": 2020 }, "scheduleEndDate": { "day": 14 "month": 2, "year": 2020 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "azureBlobStorageDataSource": { "storageAccount": "AZURE_SOURCE_NAME", "azureCredentials": { "sasToken": "AZURE_SAS_TOKEN", }, "container": "AZURE_CONTAINER", }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }Respuesta:
200 OK { "transferJob": [ { "creationTime": "2020-02-14T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2020-02-14T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 14 "month": 2, "year": 2020 }, "scheduleEndDate": { "day": 14, "month": 2, "year": 2020 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "azureBlobStorageDataSource": { "storageAccount": "AZURE_SOURCE_NAME", "azureCredentials": { "sasToken": "AZURE_SAS_TOKEN", }, "container": "AZURE_CONTAINER", }, "objectConditions": {}, "transferOptions": {} } } ] }
Transfiere entre depósitos de Cloud Storage
En este ejemplo, aprenderás cómo mover archivos desde un bucket de Cloud Storage a otro. Por ejemplo, puedes replicar datos en un depósito en otra ubicación.
Para crear el trabajo de transferencia, sigue estos pasos:
REST
Realiza la solicitud con transferJobs create:POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME" }, "objectConditions": { "minTimeElapsedSinceLastModification": "2592000s" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } }Respuesta:
200 OK { "transferJob": [ { "creationTime": "2015-01-01T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2015-01-01T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME", }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME" }, "objectConditions": { "minTimeElapsedSinceLastModification": "2592000.000s" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } } ] }
Java
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Python
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Especifica las rutas de origen y destino
Las rutas de origen y destino te permiten especificar directorios de origen y destino cuando transfieres datos a tu bucket de Cloud Storage. Por ejemplo, considera que tienes los archivos file1.txt
y file2.txt
, y un bucket de Cloud Storage llamado B
. Si estableces una ruta de destino llamada my-stuff
, después de que la transferencia se complete, tus archivos se encontrarán en gs://B/my-stuff/file1.txt
y gs://B/my-stuff/file2.txt
.
Especifica una ruta de acceso de origen
Para especificar una ruta de acceso de origen cuando creas un trabajo de transferencia, agrega un campo path
al campo gcsDataSource
en tu especificación TransferSpec
:
{ gcsDataSource: { bucketName: "SOURCE_BUCKET", path: "SOURCE_PATH/", }, }
En este ejemplo:
- SOURCE_BUCKET: El bucket de origen de Cloud Storage.
- SOURCE_PATH: La ruta de origen de Cloud Storage.
Especifica una ruta de destino
Para especificar una carpeta de destino cuando creas un trabajo de transferencia, agrega un campo path
al campo gcsDataSink
en tu especificación TransferSpec
:
{ gcsDataSink: { bucketName: "DESTINATION_BUCKET", path: "DESTINATION_PATH/", }, }
En este ejemplo:
- DESTINATION_BUCKET: El bucket de destino de Cloud Storage
- DESTINATION_PATH: La ruta de destino de Cloud Storage
Solicitud de ejemplo completa
A continuación, se muestra un ejemplo de una solicitud completa:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME", "path": "GCS_SOURCE_PATH", }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME", "path": "GCS_SINK_PATH", }, "objectConditions": { "minTimeElapsedSinceLastModification": "2592000s" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } }
Verifica el estado de la operación de transferencia
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"}
Java
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Python
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Cancela las operaciones de transferencia
Para cancelar una sola operación de transferencia, utiliza el método transferOperations cancel
. Para eliminar un trabajo de transferencia completo, incluidas las operaciones de transferencia futuras que están programadas para él, establece el estado del trabajo de transferencia en DELETED
utilizando el método transferJobs patch
. La actualización del estado de transferencia de un trabajo no afecta las operaciones de transferencia que se encuentran en ejecución. Para cancelar una operación de transferencia en progreso, usa el método transferOperations cancel
.
¿Qué sigue?
Obtén información sobre cómo trabajar con Cloud Storage.