En esta página, se muestra cómo crear y, luego, iniciar trabajos de transferencia.
Para ver si tu fuente y tu destino (también conocidos como receptor) son compatibles con Servicio de transferencia de almacenamiento, consulta Fuentes y receptores admitidos.
Agentes y grupos de agentes
Dependiendo de tu origen y destino, es posible que debas crear y configurar un grupo de agentes y, luego, instalar agentes en una máquina con acceso a tu origen o destino.
Las transferencias de Amazon S3, Microsoft Azure, las listas de URL o Cloud Storage a Cloud Storage no requieren agentes y grupos de agentes.
Las transferencias cuyo origen o destino es un sistema de archivos o un almacenamiento compatible con S3 requieren agentes y grupos de agentes. Consulta Administra grupos de agentes para obtener instrucciones.
Antes de comenzar
Antes de configurar las transferencias, asegúrate de haber configurado el acceso:
- Para usuarios y cuentas de servicio:
- A tus datos de origen y a tu destino.
Si usas comandos de gcloud
, instala la CLI de gcloud.
Crear una transferencia
No incluyas información sensible, como información de identificación personal (PII) o datos de seguridad, en el nombre de tu trabajo de transferencia. Los nombres de recursos pueden propagarse a los nombres de otros recursos de Google Cloud y pueden exponerse a sistemas internos de Google fuera del proyecto.
Consola de Google Cloud
Ve a la página Servicio de transferencia de almacenamiento en la consola de Google Cloud.
Haz clic en Crear trabajo de transferencia. Se muestra la página Crea un trabajo de transferencia.
Elige una fuente:
Cloud Storage
Tu cuenta de usuario debe tener el permiso storage.buckets.get para seleccionar depósitos de origen y destino. También puedes escribir el nombre del bucket directamente. Para obtener más información, consulta Soluciona problemas de acceso.
En Tipo de fuente, selecciona Cloud Storage.
Selecciona tu Tipo de destino.
Si tu destino es Cloud Storage, selecciona tu Modo de programación. Las transferencias por lotes se ejecutan una sola vez o de forma programada. Las transferencias controladas por eventos supervisan de manera continua la fuente y transfieren los datos cuando se agregan o se modifican.
Para configurar una transferencia controlada por eventos, sigue las instrucciones en Transferencias controladas por eventos.
Haz clic en Próximo paso.
Selecciona un bucket y, de manera opcional, una carpeta en él con una de las siguientes opciones:
Ingresa un nombre de bucket de Cloud Storage y una ruta de acceso existente en el campo Bucket o carpeta sin el prefijo
gs://
. Por ejemplo,my-test-bucket/path/to/files
. Para especificar un bucket de Cloud Storage de otro proyecto, escriba el nombre exactamente en el campo Nombre del bucket.Selecciona una lista de bucket s existentes en tus proyectos mediante un clic en Explorar y, luego, selecciona un bucket.
Cuando haces clic en Explorar, puedes seleccionar los buckets en otros proyectos si haces clic en el ID del proyecto y, luego, seleccionas el ID del proyecto y el bucket nuevos.
Para crear un bucket nuevo, haz clic en Crear nuevo bucket.
Si se trata de una transferencia basada en eventos, ingresa el nombre de la suscripción a Pub/Sub, que toma el siguiente formato:
projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID
- De forma opcional, elige filtrar objetos por prefijo o por fecha de la última modificación. Si especificaste una carpeta como la ubicación de origen, los filtros de prefijo están relacionados con esa carpeta. Por ejemplo, si la fuente es
my-test-bucket/path/
, un filtro de inclusión defile
incluirá todos los archivos que comienzan conmy-test-bucket/path/file
. Haz clic en Próximo paso.
Amazon S3
En Tipo de fuente, selecciona Amazon S3.
Como Tipo de destino, selecciona Google Cloud Storage.
Selecciona el modo de programación. Las transferencias por lotes se ejecutan una sola vez o de forma programada. Las transferencias controladas por eventos supervisan de manera continua la fuente y transfieren los datos cuando se agregan o se modifican.
Para configurar una transferencia controlada por eventos, sigue las instrucciones en Transferencias controladas por eventos.
Haz clic en Próximo paso.
En el campo Nombre del bucket o de la carpeta, ingresa el nombre del bucket de origen.
El nombre del bucket es el nombre que aparece en la consola de administración de AWS.
Si usas una distribución de CloudFront para transferir desde S3, ingresa el nombre de dominio de distribución en el campo Dominio de CloudFront. Por ejemplo,
https://dy1h2n3l4ob56.cloudfront.net
Consulta Transferencias desde S3 a través de CloudFront para configurar una distribución de CloudFront.Selecciona el método de autenticación de Amazon Web Services (AWS). Puedes proporcionar una clave de acceso de AWS o un nombre de recurso de Amazon (ARN) para la federación de identidades:
Clave de acceso: Ingresa tu clave de acceso en el ID de la clave de acceso el secreto asociado con tu clave de acceso en Clave de acceso secreta.
ARN: Ingresa tu ARN en el campo Rol de IAM de AWS con la siguiente sintaxis:
arn:aws:iam::ACCOUNT:role/ROLE-NAME-WITH-PATH
Aquí:
ACCOUNT
: El ID de la cuenta de AWS sin guiones.ROLE-NAME-WITH-PATH
: El nombre del rol de AWS, incluida la ruta de acceso.
Para obtener más información sobre los ARN, consulta ARN de IAM.
Si se trata de una transferencia basada en eventos, ingresa el ARN de la cola de Amazon SQS, que toma el siguiente formato:
arn:aws:sqs:us-east-1:1234567890:event-queue
- De forma opcional, elige filtrar objetos por prefijo o por fecha de la última modificación. Si especificaste una carpeta como la ubicación de origen, los filtros de prefijo están relacionados con esa carpeta. Por ejemplo, si la fuente es
my-test-bucket/path/
, un filtro de inclusión defile
incluirá todos los archivos que comienzan conmy-test-bucket/path/file
. Haz clic en Próximo paso.
Almacenamiento compatible con S3
En Tipo de fuente, selecciona Almacenamiento de objetos compatible con S3.
Haz clic en Próximo paso.
Especifica la información necesaria para esta transferencia:
Selecciona el grupo de agentes que configuraste para esta transferencia.
Ingresa el Nombre del bucket en relación con el extremo. Por ejemplo, si tus datos se encuentran en:
https://us-east-1.example.com/folder1/bucket_a
Ingresa:
folder1/bucket_a
Ingresa el Extremo. No incluyas el protocolo (
http://
ohttps://
). En el ejemplo del paso anterior, deberías ingresar lo siguiente:us-east-1.example.com
Especifica cualquier atributo opcional para esta transferencia:
Ingresa la Región de firmas que se usará para firmar las solicitudes. Deja este campo en blanco si la fuente no requiere una región de firma.
Elige el Proceso de firma para esta solicitud.
Selecciona el Estilo de Address. Esto determina si el nombre del bucket se proporciona en formato de ruta de acceso (p.ej.,
https://s3.region.example.com/bucket-name/key-name
) o de estilo de alojamiento virtual (p.ej.,https://bucket-name.s3.region.example.com/key-name
). Consulta [Host virtual de buckets] en la documentación de Amazon para obtener más información.Selecciona el Protocolo de red.
Selecciona la versión de la API de listado que usarás. Consulta la documentación ListObjectsV2 y ListObjects para obtener más información.
Haz clic en Próximo paso.
Microsoft Azure Blob Storage
En Tipo de fuente, selecciona Azure Blob Storage o Data Lake Storage Gen2.
Haga clic en Siguiente paso.
Especifique lo siguiente:
Nombre de la cuenta de almacenamiento: el nombre de la cuenta de origen de Microsoft Azure Storage.
El nombre de la cuenta de almacenamiento se muestra en el portal de Microsoft Azure Storage, en Todos los servicios > Almacenamiento > Cuentas de almacenamiento.
Nombre del contenedor: el nombre del contenedor de Microsoft Azure Storage.
El nombre del contenedor se muestra en el portal de Microsoft Azure Storage en Explorador de almacenamiento > Contenedores de Blob.
Firma de acceso compartido (SAS): el token SAS de Microsoft Azure Storage creado a partir de una política de acceso almacenado. Para obtener más información, consulte Conceder acceso limitado a los recursos de Azure Storage mediante firmas de acceso compartido (SAS).
El tiempo de vencimiento predeterminado para los tokens SAS es de 8 horas. Cuando crees tu token SAS, asegúrate de establecer un tiempo de vencimiento razonable que te permita completar correctamente tu transferencia.
- De forma opcional, elige filtrar objetos por prefijo o por fecha de la última modificación. Si especificaste una carpeta como la ubicación de origen, los filtros de prefijo están relacionados con esa carpeta. Por ejemplo, si la fuente es
my-test-bucket/path/
, un filtro de inclusión defile
incluirá todos los archivos que comienzan conmy-test-bucket/path/file
. Haz clic en Próximo paso.
Sistema de archivos
En Tipo de fuente, selecciona Sistema de archivos POSIX.
Selecciona tu Tipo de destino y haz clic en Siguiente paso.
Selecciona un grupo de agentes existente o selecciona Crear grupo de agentes y sigue las instrucciones para crear un grupo nuevo.
Especifica la ruta completamente calificada del directorio del sistema de archivos.
Haz clic en Próximo paso.
HDFS
Consulta Transferencias de HDFS a Cloud Storage.
Lista de URLs
En Tipo de fuente, selecciona Lista de URL y haz clic en Siguiente paso.
En la URL de archivo TSV, proporciona la URL a un archivo de valores separados por tabulaciones (TSV). Consulta Crea una lista de URL si deseas obtener detalles para crear el archivo TSV.
- De forma opcional, elige filtrar objetos por prefijo o por fecha de la última modificación. Si especificaste una carpeta como la ubicación de origen, los filtros de prefijo están relacionados con esa carpeta. Por ejemplo, si la fuente es
my-test-bucket/path/
, un filtro de inclusión defile
incluirá todos los archivos que comienzan conmy-test-bucket/path/file
. Haz clic en Próximo paso.
Elije un destino:
Cloud Storage
En el campo Bucket o carpeta, ingresa el bucket de destino y el nombre de la carpeta (opcional) o haz clic en Explorar para seleccionar un bucket de una lista de buckets existentes en tu proyecto actual. Para crear un bucket nuevo, haz clic en Crear nuevo bucket.
Haga clic en Siguiente paso.
Elige la configuración del trabajo de transferencia. Algunas opciones solo están disponibles para ciertas combinaciones de fuente y receptor.
En el campo Descripción, ingresa una descripción de la transferencia. Como práctica recomendada, ingresa una descripción que sea significativa y única para que puedas distinguir los trabajos.
En Opciones de metadatos, selecciona las opciones predeterminadas o haz clic en Ver y seleccionar opciones para especificar los valores de todos los metadatos admitidos. Consulta Conservación de metadatos para obtener más información.
En Cuándo reemplazar, selecciona una de las siguientes opciones:
Si es diferente: Reemplaza los archivos de destino si el archivo de origen con el mismo nombre tiene diferentes ETags o valores de suma de verificación.
Siempre: Siempre escribe archivos de destino cuando el archivo de origen tiene el mismo nombre, incluso si son idénticos.
En Cuándo borrar, selecciona una de las siguientes opciones:
Nunca: Nunca borres archivos de origen o de destino.
Borrar archivos de la fuente después de la transferencia: Borra los archivos de la fuente después de transferirlos al destino.
Borra los archivos del destino si no están también en el origen: Si los archivos en el bucket de Cloud Storage de destino no están también en el origen, borra los archivos del bucket de Cloud Storage.
Esta opción garantiza que el bucket de destino de Cloud Storage coincida exactamente con tu fuente.
En Opciones de notificación, selecciona tu tema de Pub/Sub y los eventos a los que deseas notificar. Consulta las notificaciones de Pub/Sub para obtener más detalles.
Haga clic en Siguiente paso.
Sistema de archivos
Selecciona un grupo de agentes existente o selecciona Crear grupo de agentes y sigue las instrucciones para crear un grupo nuevo.
Especifica la ruta de acceso del directorio de destino completamente calificado.
Haga clic en Siguiente paso.
Elige tus opciones de programación:
En la lista desplegable Ejecutar una vez, selecciona una de las siguientes opciones:
Ejecutar una vez: Ejecuta una sola transferencia, a la vez a una hora seleccionada.
Ejecutar todos los días: Ejecuta una transferencia a diario a partir de la hora que selecciones.
Puedes ingresar una Fecha de finalización opcional o dejar la Fecha de finalización en blanco para ejecutar la transferencia de forma continua.
Ejecutar todas las semanas: Ejecuta una transferencia semanalmente, a partir de un momento que elijas.
Ejecutar con frecuencia personalizada: Ejecuta una transferencia a la frecuencia que seleccionas. Puedes elegir repetir la transferencia a un intervalo regular de horas, días o semanas.
Puedes ingresar una Fecha de finalización opcional o dejar la Fecha de finalización en blanco para ejecutar la transferencia de forma continua.
En la lista desplegable A partir de ahora, selecciona una de las siguientes opciones:
Inicio ahora: Inicia la transferencia después de hacer clic en Crear.
A partir del: inicia la transferencia en la fecha y hora que seleccionaste. Haz clic en Calendario a fin de mostrar un calendario para seleccionar la fecha de inicio.
Para crear tu trabajo de transferencia, haz clic en Crear.
gcloud CLI
Para crear un nuevo trabajo de transferencia, usa el comando gcloud transfer jobs create
. La creación de un trabajo nuevo inicia la transferencia especificada, a menos que se especifique un programa o --do-not-run
.
gcloud transfer jobs create \
SOURCE DESTINATION
Aquí:
SOURCE es la fuente de datos de esta transferencia. El formato de cada fuente es el siguiente:
- Cloud Storage:
gs://BUCKET_NAME
. Para transferir desde una carpeta en particular, especificags://BUCKET_NAME/FOLDER_PATH/
, incluida la barra diagonal final. - Amazon S3:
s3://BUCKET_NAME/FOLDER_PATH
- Almacenamiento compatible con S3:
s3://BUCKET_NAME
. El nombre del bucket es relativo al extremo. Por ejemplo, si tus datos se encuentran enhttps://us-east-1.example.com/folder1/bucket_a
, ingresas3://folder1/bucket_a
. - Microsoft Azure Storage:
https://myaccount.blob.core.windows.net/CONTAINER_NAME
- Lista de URL:
https://PATH_TO_URL_LIST
ohttp://PATH_TO_URL_LIST
- Sistema de archivos POSIX:
posix:///PATH
Esta debe ser una ruta de acceso absoluta desde la raíz de la máquina anfitrión del agente. - HDFS:
hdfs:///PATH
- Cloud Storage:
DESTINATION es uno de los siguientes:
- Cloud Storage:
gs://BUCKET_NAME
. Para transferir a un directorio en particular, especificags://BUCKET_NAME/FOLDER_PATH/
, incluida la barra diagonal final. - Sistema de archivos POSIX:
posix:///PATH
Esta debe ser una ruta de acceso absoluta desde la raíz de la máquina anfitrión del agente.
- Cloud Storage:
Si la transferencia requiere agentes de transferencia, las siguientes opciones están disponibles:
--source-agent-pool
especifica el grupo de agentes de origen que se usará para esta transferencia. Obligatorio para las transferencias que se originan desde un sistema de archivos.--destination-agent-pool
especifica el grupo de agentes de destino que se usará para esta transferencia. Obligatorio para las transferencias a un sistema de archivos.--intermediate-storage-path
es la ruta a un bucket de Cloud Storage, en el formatogs://my-intermediary-bucket
. Obligatorio para las transferencias entre dos sistemas de archivos. Consulta Crea un bucket de Cloud Storage como intermediario para obtener detalles sobre la creación del bucket intermedio.
Las opciones adicionales incluyen:
--source-creds-file
especifica la ruta relativa a un archivo local en tu máquina que incluye credenciales de AWS o Azure para la fuente de transferencia. Para obtener información sobre el formato de archivo de credenciales, consulta la referencia de TransferSpec.--do-not-run
evita que el Servicio de transferencia de almacenamiento ejecute el trabajo cuando se envía el comando. Si deseas ejecutar el trabajo, actualízalo para agregar una programación o usajobs run
a fin de iniciarlo de forma manual.--manifest-file
especifica la ruta a un archivo CSV en Cloud Storage, que contiene una lista de archivos para transferir de tu fuente. Para formatear archivos de manifiesto, consulta Transfiere archivos o objetos específicos con un manifiesto.Información del trabajo: Puedes especificar
--name
,--description
y--source-creds-file
.Programa: Especifica
--schedule-starts
,--schedule-repeats-every
, y--schedule-repeats-until
o--do-not-run
.Condiciones de objetos: Usa condiciones para determinar qué objetos se transfieren. Estos incluyen
--include-prefixes
y--exclude-prefixes
, y las condiciones basadas en el tiempo en--include-modified-[before | after]-[absolute | relative]
. Si especificaste una carpeta con tu fuente, los filtros de prefijo son relacionados con esa carpeta. Consulta Filtra los objetos de origen por prefijo para obtener más información.Las condiciones de objetos no son compatibles con las transferencias que involucran sistemas de archivos.
Opciones de transferencia: Especifica si deseas reemplazar los archivos de destino (
--overwrite-when=different
oalways
) y si deseas borrar ciertos archivos durante o después de la transferencia (--delete-from=destination-if-unique
osource-after-transfer
). Especifica qué valores de metadatos se deben conservar (--preserve-metadata
) y, de manera opcional, puedes configurar una clase de almacenamiento en los objetos transferidos (--custom-storage-class
).Notificaciones: Configura las notificaciones de Pub/Sub para transferencias con
--notification-pubsub-topic
,--notification-event-types
y--notification-payload-format
.Cloud Logging: Habilita Cloud Logging para transferencias sin agentes o desde fuentes compatibles con S3, con
--log-actions
y--log-action-states
. Consulta Cloud Logging para el Servicio de transferencia de almacenamiento a fin de obtener más detalles.
Las transferencias desde fuentes compatibles con S3 también utilizan las siguientes opciones:
--source-endpoint
(obligatorio): Especifica el extremo del sistema de almacenamiento. Por ejemplo,s3.example.com
Consulta con tu proveedor el formato correcto. No especifiques el protocolo (http://
ohttps://
).--source-signing-region
especifica una región para firmar solicitudes. Omite esta marca si tu proveedor de almacenamiento no requiere una región de firma.--source-auth-method
especifica el método de autenticación que se usará. Los valores válidos sonAWS_SIGNATURE_V2
oAWS_SIGNATURE_V4
. Consulta la documentación de SigV4 y SigV2 de Amazon para obtener más información.--source-request-model
especifica el estilo de asignación que se usará. Los valores válidos sonPATH_STYLE
oVIRTUAL_HOSTED_STYLE
. El diseño de ruta de acceso usa el formatohttps://s3.example.com/BUCKET_NAME/KEY_NAME
. El estilo alojado virtual usa el formato `https://BUCKET_NAME.s3.example.com/KEY_NAME.--source-network-protocol
especifica el protocolo de red que los agentes deben usar para este trabajo. Los valores válidos sonHTTP
oHTTPS
.--source-list-api
especifica la versión de la API de S3 para mostrar objetos del bucket. Los valores válidos sonLIST_OBJECTS
oLIST_OBJECTS_V2
. Consulta la documentación ListObjectsV2 y ListObjects de Amazon para obtener más información.
Para ver todas las opciones, ejecuta gcloud transfer jobs create --help
o consulta la documentación de referencia de gcloud
.
Ejemplos
De Amazon S3 a Cloud Storage
Ejecuta el siguiente comando para crear un trabajo de transferencia diaria a fin de mover los datos modificados en el último día desde s3://my-s3-bucket
a un bucket de Cloud Storage llamado my-storage-bucket
:
gcloud transfer jobs create \
s3://my-s3-bucket gs://my-storage-bucket \
--source-creds-file=/examplefolder/creds.txt \
--include-modified-after-relative=1d \
--schedule-repeats-every=1d
Almacenamiento compatible con S3 en Cloud Storage
Para transferir de una fuente compatible con S3 a un bucket de Cloud Storage, sigue estos pasos:
gcloud transfer jobs create s3://my-s3-compat-bucket gs://my-storage-bucket \
--source-agent-pool=my-source-agent-pool
--source-endpoint=us-east-1.example.com/ \
--source-auth-method=AWS_SIGNATURE_V2 \
--source-request-model=PATH_STYLE \
--source-network-protocol=HTTPS \
--source-list-api=LIST_OBJECTS_V2
Del sistema de archivos a Cloud Storage
Para transferir desde un sistema de archivos a un bucket de Cloud Storage, especifica lo siguiente.
gcloud transfer jobs create \
posix:///tmp/source gs://my-storage-bucket \
--source-agent-pool=my-source-agent-pool
De Cloud Storage al sistema de archivos
Para transferir desde un bucket de Cloud Storage a un sistema de archivos, especifica lo siguiente.
gcloud transfer jobs create \
gs://my-storage-bucket posix:///tmp/destination \
--destination-agent-pool=my-destination-agent-pool
De un sistema de archivos a otro
Para transferir entre dos sistemas de archivos, debes especificar un grupo de agentes de origen, un grupo de agentes de destino y un bucket intermedio de Cloud Storage a través del cual pasan los datos.
Consulta Crea un bucket de Cloud Storage como intermediario para obtener detalles acerca del bucket intermedio.
Luego, especifica estos 3 recursos cuando llames a transfer jobs create
:
gcloud transfer jobs create \
posix:///tmp/source/on/systemA posix:///tmp/destination/on/systemB \
--source-agent-pool=source_agent_pool \
--destination-agent-pool=destination_agent_pool \
--intermediate-storage-path=gs://my-intermediary-bucket
REST
En los siguientes ejemplos, se muestra cómo usar el Servicio de transferencia de almacenamiento a través de la API de REST.
Cuando configuras o editas los trabajos de transferencia con la API del Servicio de transferencia de almacenamiento, la hora debe estar en UTC. Para obtener más información sobre cómo especificar la programación de un trabajo de transferencia, consulta Programa.
Transfiere entre buckets 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 bucket en otra ubicación.
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_SINK_NAME" }, "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 } } } ] }
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 a Amazon S3 y Precios para comprender las implicaciones de trasladar datos de Amazon S3 a Cloud Storage.
Cuando crees trabajos de transferencia, no incluyas el prefijo s3://
para bucketName
en los nombres de origen del bucket de Amazon S3.
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": {} } } ] }
Si realizas la transferencia desde S3 a través de una distribución de CloudFront, especifica el nombre de dominio de distribución como el valor del campo transferSpec.awsS3DataSource.cloudfrontDomain
:
"transferSpec": {
"awsS3DataSource": {
"bucketName": "AWS_SOURCE_NAME",
"cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net",
"awsAccessKey": {
"accessKeyId": "AWS_ACCESS_KEY_ID",
"secretAccessKey": "AWS_SECRET_ACCESS_KEY"
}
},
...
}
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, revisa Configura el acceso a Microsoft Azure Storage y Precios para comprender las implicaciones de trasladar datos de Microsoft Azure Storage a Cloud Storage.
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": {} } } ] }
Transferencia desde un sistema de archivos
En este ejemplo, aprenderás cómo mover archivos desde un sistema de archivos POSIX a un bucket de Cloud Storage.
Usa transferJobs.create con un posixDataSource
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "name":"transferJobs/sample_transfer", "description": "My First Transfer", "status": "ENABLED", "projectId": "my_transfer_project_id", "schedule": { "scheduleStartDate": { "year": 2022, "month": 5, "day": 2 }, "startTimeOfDay": { "hours": 22, "minutes": 30, "seconds": 0, "nanos": 0 } "scheduleEndDate": { "year": 2022, "month": 12, "day": 31 }, "repeatInterval": { "259200s" }, }, "transferSpec": { "posixDataSource": { "rootDirectory": "/bar/", }, "sourceAgentPoolName": "my_example_pool", "gcsDataSink": { "bucketName": "destination_bucket" "path": "foo/bar/" }, } }
El campo schedule
es opcional. Si no se incluye, el trabajo de transferencia debe iniciarse con una solicitud transferJobs.run
.
Para verificar el estado de tu transferencia después de crear un trabajo, usa transferJobs.get
:
GET https://storagetransfer.googleapis.com/v1/transferJobs/sample_transfer?project_id=my_transfer_project_id
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: Es la ruta de acceso 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 } } }
Bibliotecas cliente
En los siguientes ejemplos, se muestra cómo usar el Servicio de transferencia de almacenamiento de manera programática con Go, Java, Node.js y Python.
Cuando configuras o editas los trabajos de transferencia de manera programática, la hora debe estar en UTC. Para obtener más información sobre cómo especificar la programación de un trabajo de transferencia, consulta Programa.
Para obtener más información sobre las bibliotecas cliente del Servicio de transferencia de almacenamiento, consulta Comienza a usar las bibliotecas cliente del Servicio de transferencia de almacenamiento.
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 bucket en otra ubicación.
Go
Java
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Node.js
Python
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
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 a Amazon S3 y Precios para comprender las implicaciones de trasladar datos de Amazon S3 a Cloud Storage.
Cuando crees trabajos de transferencia, no incluyas el prefijo s3://
para bucketName
en los nombres de origen del bucket de Amazon S3.
Go
Java
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Node.js
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, revisa Configura el acceso a Microsoft Azure Storage y Precios para comprender las implicaciones de trasladar datos de Microsoft Azure Storage a Cloud Storage.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta Bibliotecas cliente del Servicio de transferencia de almacenamiento. Para obtener más información, consulta la documentación de referencia de la API de Go del Servicio de transferencia de almacenamiento.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta Bibliotecas cliente del Servicio de transferencia de almacenamiento. Para obtener más información, consulta la documentación de referencia de la API de Java del Servicio de transferencia de almacenamiento.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta Bibliotecas cliente del Servicio de transferencia de almacenamiento. Para obtener más información, consulta la documentación de referencia de la API de Node.js del Servicio de transferencia de almacenamiento.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta Bibliotecas cliente del Servicio de transferencia de almacenamiento. Para obtener más información, consulta la documentación de referencia de la API de Python del Servicio de transferencia de almacenamiento.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Transferdesde un sistema de archivos
En este ejemplo, aprenderás cómo mover archivos desde un sistema de archivos POSIX a un bucket de Cloud Storage.