Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
AzCopy es una utilidad de línea de comandos que puede usar para copiar blobs o archivos a una cuenta de almacenamiento o desde una cuenta de almacenamiento. Este artículo le ayuda a copiar objetos, directorios y cubos de Google Cloud Storage a Azure Blob Storage mediante AzCopy.
Elija cómo proporcionará las credenciales de autorización.
Para autorizar con Azure Storage, use Microsoft Entra ID o un token de firma de acceso compartido (SAS).
Para autorizar con Google Cloud Storage, use una clave de cuenta de servicio.
Autorización con Azure Storage
Vea el artículo Introducción a AzCopy para descargar AzCopy y obtener información sobre las formas de proporcionar credenciales de autorización para el servicio de almacenamiento.
Nota:
En los ejemplos de este artículo se supone que se proporcionan credenciales de autorización mediante el identificador de Entra de Microsoft.
Si prefiere usar un token de SAS para autorizar el acceso a datos de blobs, puede anexar ese token a la dirección URL del recurso en cada comando de AzCopy. Por ejemplo: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.
Autorización con Google Cloud Storage
Para autorizar con Google Cloud Storage, use una clave de cuenta de servicio. Para obtener información sobre cómo crear una clave de cuenta de servicio, consulte Creación y administración de claves de cuenta de servicio.
Después de obtener una clave de servicio, establezca la GOOGLE_APPLICATION_CREDENTIALS variable de entorno en la ruta de acceso absoluta al archivo de clave de cuenta de servicio:
| Sistema operativo | Command |
|---|---|
| Windows | set GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
| Linux | export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
| macOS | export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
Copiar objetos, directorios y cubos
AzCopy usa la API Put Block From URL , por lo que los datos se copian directamente entre Google Cloud Storage y los servidores de almacenamiento. En estas operaciones de copia no se usa el ancho de banda de red del equipo.
Sugerencia
En los ejemplos de esta sección se delimitan los argumentos de ruta de acceso con comillas simples (''). Use comillas simples en todos los shells de comandos excepto en el shell de comandos de Windows (cmd.exe). Si usa un shell de comandos de Windows (cmd.exe), incluya los argumentos de la ruta de acceso entre comillas dobles ("") en lugar de comillas simples ('').
Estos ejemplos también funcionan con cuentas que tienen un espacio de nombres jerárquico.
El acceso a varios protocolos en Data Lake Storage permite usar la misma sintaxis de dirección URL (blob.core.windows.net) en esas cuentas.
Copiar un objeto
Use la misma sintaxis de dirección URL (blob.core.windows.net) para las cuentas que tienen un espacio de nombres jerárquico.
Sintaxis
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
Ejemplo
azcopy copy 'https://storage.cloud.google.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
Copiar un directorio
Use la misma sintaxis de dirección URL (blob.core.windows.net) para las cuentas que tienen un espacio de nombres jerárquico.
Sintaxis
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Ejemplo
azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Nota:
En este ejemplo se anexa la --recursive marca para copiar archivos en todos los subdirectorios.
Copiar el contenido de un directorio
Puede copiar el contenido de un directorio sin copiar el directorio contenedor en sí mediante el símbolo comodín (*).
Sintaxis
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Ejemplo
azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Copia de un bucket de almacenamiento en la nube
Use la misma sintaxis de dirección URL (blob.core.windows.net) para las cuentas que tienen un espacio de nombres jerárquico.
Sintaxis
azcopy copy 'https://storage.cloud.google.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Ejemplo
azcopy copy 'https://storage.cloud.google.com/mybucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Copiar todos los buckets en un proyecto de Google Cloud
En primer lugar, establezca en GOOGLE_CLOUD_PROJECT el identificador del proyecto de Google Cloud.
Use la misma sintaxis de dirección URL (blob.core.windows.net) para las cuentas que tienen un espacio de nombres jerárquico.
Sintaxis
azcopy copy 'https://storage.cloud.google.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Ejemplo
azcopy copy 'https://storage.cloud.google.com/' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Copia de un subconjunto de cubos en un proyecto de Google Cloud
En primer lugar, establezca en GOOGLE_CLOUD_PROJECT el identificador del proyecto de Google Cloud.
Copia de un subconjunto de cubos mediante un símbolo comodín (*) en el nombre del cubo. Use la misma sintaxis de dirección URL (blob.core.windows.net) para las cuentas que tienen un espacio de nombres jerárquico.
Sintaxis
azcopy copy 'https://storage.cloud.google.com/<bucket*name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Ejemplo
azcopy copy 'https://storage.cloud.google.com/my*bucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Control de las diferencias en las reglas de nomenclatura de cubos
Google Cloud Storage tiene un conjunto diferente de convenciones de nomenclatura para los nombres de cubo en comparación con los contenedores de blobs de Azure. Puede leer sobre ellos aquí. Si decide copiar un grupo de cubos en una cuenta de almacenamiento de Azure, la operación de copia podría producir un error debido a las diferencias de nomenclatura.
AzCopy controla tres de los problemas más comunes que pueden surgir: depósitos que contienen puntos, cubos que contienen guiones consecutivos y depósitos que contienen caracteres de subrayado. Los nombres de cubo de Google Cloud Storage pueden contener puntos y guiones consecutivos, pero un contenedor de Azure no. AzCopy reemplaza los puntos por guiones y los guiones consecutivos por un número que representa la cantidad de guiones consecutivos (por ejemplo: un cubo denominado my----bucket se convierte en my-4-bucket). Si el nombre del cubo tiene un guion bajo (_), AzCopy lo reemplaza por un guion. Por ejemplo, un cubo denominado my_bucket se convierte en my-bucket.
Control de las diferencias en las reglas de nomenclatura de objetos
Google Cloud Storage tiene un conjunto diferente de convenciones de nomenclatura para los nombres de objeto en comparación con los blobs de Azure. Puede leer sobre ellos aquí.
Azure Storage no permite que los nombres de objeto (ni ningún segmento de la ruta de acceso del directorio virtual) terminen con puntos finales (por ejemplo my-bucket..., ). Los puntos finales se eliminan cuando se realiza la operación de copia.
Control de las diferencias en los metadatos del objeto
Google Cloud Storage y Azure permiten diferentes conjuntos de caracteres en los nombres de las claves de objeto. Puede leer sobre los metadatos de Google Cloud Storage aquí. En Azure, las claves de objeto de blob se adhieren a las reglas de nomenclatura para los identificadores de C#.
Como parte de un comando de AzCopy copy , puede proporcionar un valor para la marca opcional s2s-handle-invalid-metadata que especifica cómo desea controlar los archivos donde los metadatos del archivo contienen nombres de clave incompatibles. En la tabla siguiente se describe cada valor de marca.
| Valor de marca | Description |
|---|---|
| ExcluirSiInválido | (Opción predeterminada) Los metadatos no se incluyen en el objeto transferido. AzCopy registra una advertencia. |
| FailIfInvalid | Los objetos no se copian. AzCopy registra un error e incluye ese error en el recuento de errores que aparece en el resumen de transferencia. |
| RenameIfInvalid | AzCopy resuelve la clave de metadatos no válida y copia el objeto en Azure mediante el par de valores de clave de metadatos resuelto. Para saber exactamente qué pasos lleva AzCopy para cambiar el nombre de las claves de objeto, consulte la sección How AzCopy renames object keys (Cómo AzCopy cambia el nombre de las claves de objeto ). Si AzCopy no puede cambiar el nombre de la clave, el objeto no se copia. |
Cómo AzCopy cambia el nombre de las claves de objeto
AzCopy realiza estos pasos:
Reemplaza caracteres no válidos por '_'.
Agrega la cadena
rename_al principio de una nueva clave válida.Esta clave se usará para guardar el valor de metadatos original.
Agrega la cadena
rename_key_al principio de una nueva clave válida. Esta clave se usará para guardar la clave no válida de los metadatos originales. Puede usar esta clave para intentar recuperar los metadatos del lado de Azure, ya que la clave de metadatos se conserva como un valor en el servicio Blob Storage.
Especificar tipos de origen y destino
AzCopy usa el --from-to parámetro para definir explícitamente los tipos de recursos de origen y destino cuando se puede producir un error en la detección automática, como en escenarios de canalización o emuladores. Esto ayuda a AzCopy a comprender el contexto de la transferencia y optimizar en consecuencia. Puede establecer este parámetro en GCPBlob para indicar explícitamente que el comando está copiando de Google Cloud Storage a Azure Blob Storage.
Pasos siguientes
Busque más ejemplos en estos artículos:
- Ejemplos: Subir
- Ejemplos: Descargar
- Ejemplos: Copiar entre cuentas
- Ejemplos: Sincronizar
- Ejemplos: buckets de Amazon S3
- Ejemplos: Azure Files
Consulte estos artículos para configurar opciones, optimizar el rendimiento y solucionar problemas: