Compartir vía


Copia de blobs entre cuentas de almacenamiento de Azure mediante AzCopy

Puede usar la utilidad de línea de comandos AzCopy v10 para copiar blobs, directorios y contenedores entre cuentas de almacenamiento.

Para obtener ejemplos de otros tipos de tareas, como cargar archivos, descargar blobs y sincronizar con Blob Storage, consulte los vínculos de la sección Pasos siguientes de este artículo.

AzCopy usa APIde servidor a servidor, por lo que los datos se copian directamente entre servidores de almacenamiento.

Primeros pasos

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 y que la identidad de Microsoft Entra tiene las asignaciones de roles adecuadas para las cuentas de origen y destino.

Como alternativa, puede anexar un token de SAS a la dirección URL de origen o de destino en cada comando de AzCopy. Por ejemplo: azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'.

Directrices

Aplique las siguientes directrices a los comandos AzCopy.

  • Si usa la autorización de Microsoft Entra para el origen y el destino, ambas cuentas deben pertenecer al mismo inquilino de Microsoft Entra.

  • El cliente debe tener acceso de red a las cuentas de almacenamiento de origen y de destino.

    Para aprender a configurar la red de cada cuenta de almacenamiento, consulte Configuración de redes virtuales y firewalls de Azure Storage.

    Para obtener información sobre las topologías de red admitidas al copiar entre cuentas, consulte Copia de blobs entre cuentas de almacenamiento con restricción de acceso.

  • Si realiza la copia en una cuenta de almacenamiento de blobs en bloques premium, omita el nivel de acceso de un blob de la operación de copia estableciendo s2s-preserve-access-tier en false (por ejemplo: --s2s-preserve-access-tier=false). Las cuentas de almacenamiento de blobs en bloques Premium no admiten niveles de acceso.

  • Para aumentar el rendimiento de las operaciones, puede establecer el valor de la variable de entorno AZCOPY_CONCURRENCY_VALUE. Para más información, consulte Aumento de la simultaneidad.

  • Si los blobs de origen tienen etiquetas de índice y desea conservar esas etiquetas, debe volver a aplicarlas a los blobs de destino. Para obtener información sobre cómo establecer etiquetas de índice, consulte la sección Copia de blobs en otra cuenta de almacenamiento con etiquetas de índice de este artículo.

Copia de un blob

Copie un blob en otra cuenta de almacenamiento mediante el comando azcopy copy.

Sugerencia

En este ejemplo los argumentos de ruta de acceso se encierran entre 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 ('').

Sintaxis

azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>'

Ejemplo

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt'

Ejemplo (puntos de conexión de Data Lake Storage)

azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'

La operación de copia es sincrónica. Cuando el comando devuelve, indica que se copian todos los archivos.

Copia de un directorio

Copie un directorio en otra cuenta de almacenamiento mediante el comando azcopy copy.

Sugerencia

En este ejemplo los argumentos de ruta de acceso se encierran entre 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 ('').

Sintaxis

azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive

Ejemplo

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

Ejemplo (puntos de conexión de Data Lake Storage)

azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive

La operación de copia es sincrónica. Cuando el comando devuelve, se copian todos los archivos.

Copia de un contenedor

Copie un contenedor en otra cuenta de almacenamiento mediante el comando azcopy copy.

Sugerencia

En este ejemplo los argumentos de ruta de acceso se encierran entre 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 ('').

Sintaxis

azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive

Ejemplo

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

Ejemplo (puntos de conexión de Data Lake Storage)

azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive

La operación de copia es sincrónica. Cuando el comando devuelve, se copian todos los archivos.

Copia de contenedores, directorios y blobs

Copie todos los contenedores, directorios y blobs en otra cuenta de almacenamiento mediante el comando azcopy copy.

Sugerencia

En este ejemplo los argumentos de ruta de acceso se encierran entre 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 ('').

Sintaxis

azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/' --recursive

Ejemplo

azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive

Ejemplo (puntos de conexión de Data Lake Storage)

azcopy copy 'https://mysourceaccount.dfs.core.windows.net/' 'https://mydestinationaccount.dfs.core.windows.net' --recursive

La operación de copia es sincrónica. Cuando el comando devuelve, indica que se copian todos los archivos.

Copia de blobs e incorporación de etiquetas de índice

Copie blobs en otra cuenta de almacenamiento y agregue etiquetas de índice de blob al blob de destino.

Si usa la autorización de Microsoft Entra, asigne el rol Propietario de datos de Storage Blob a su entidad de seguridad, o bien, concédele permiso para la operación del Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeOperación del proveedor de recursos de Azure mediante un rol personalizado de Azure. Si está utilizando un token SAS (firma de acceso compartido), el token debe proporcionar acceso a las etiquetas del blob mediante el permiso t de SAS.

Para agregar etiquetas, use la --blob-tags opción con un par clave-valor con codificación URL.

Por ejemplo, para agregar la clave my tag y el valor my tag value, agregue --blob-tags='my%20tag=my%20tag%20value' al parámetro de destino.

Separe varias etiquetas de índice con una y comercial (&). Por ejemplo, si desea agregar la clave my second tag y el valor my second tag value, la cadena de opción completa sería --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'.

En el siguiente ejemplo, se muestra cómo usar la opción --blob-tags.

Sugerencia

En estos ejemplos se delimitan los argumentos de ruta de acceso con comillas (''). 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 ('').

Ejemplo de blob


azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Ejemplo de directorio

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Ejemplo de contenedor

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Ejemplo de cuenta

azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

La operación de copia es sincrónica. Cuando el comando devuelve, se copian todos los archivos.

Nota:

Si especifica un directorio, un contenedor o una cuenta para el origen, todos los blobs que copie en el destino tienen las mismas etiquetas que especifique en el comando .

Copia con marcas opcionales

Puede modificar las operaciones de copia mediante marcas opcionales. Estos son algunos ejemplos.

Escenario Marca
Copie blobs como blobs en bloques, en páginas o en anexos. --blob-type=[BlockBlob|PageBlob|AppendBlob]
Copiar en un nivel de acceso específico (como el nivel de archivo). --block-blob-tier=[None|Hot|Cool|Archive]
Descomprimir archivos automáticamente. --decompress=[gzip|deflate]

Para obtener una lista completa, vea las opciones.

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. Este parámetro ayuda a AzCopy a comprender el contexto de la transferencia y optimizar en consecuencia.

FromTo Value Description
BlobBlob Copia entre dos ubicaciones de Azure Blob Storage
BlobBlobFS Copia de Azure Blob Storage a Azure Data Lake Gen2 (BlobFS)
BlobFSBlob Copia de Azure Data Lake Gen2 (BlobFS) a Azure Blob Storage
BlobFSBlobFS Copia entre dos ubicaciones de Azure Data Lake Gen2 (BlobFS)
BlobFSFile Copia de Azure Data Lake Gen2 (BlobFS) a Azure File Storage
BlobFile Copia de Azure Blob Storage a Azure File Storage
FileBlob Copia de Azure File Storage a Azure Blob Storage
FileBlobFS Copia de Azure File Storage a Azure Data Lake Gen2 (BlobFS)

Pasos siguientes

Encuentre más ejemplos en estos artículos:

Consulte estos artículos para configurar opciones, optimizar el rendimiento y solucionar problemas: