Copia de blobs entre cuentas de almacenamiento de Azure mediante AzCopy
Puede copiar blobs, directorios y contenedores entre cuentas de almacenamiento mediante la utilidad de línea de comandos AzCopy v10.
Para ver ejemplos de otros tipos de tareas, como la carga de archivos, la descarga de blobs y la sincronización con Blob Storage, consulte los vínculos presentados en la sección Pasos siguientes de este artículo.
AzCopy usa interfaces APIde servidor a servidor, por lo que los datos se copian directamente entre servidores de almacenamiento.
Introducción
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 da por sentado que ya ha proporcionado credenciales de autorización mediante Microsoft Entra ID y que la identidad de Microsoft Entra tiene las asignaciones de roles adecuadas tanto en la cuenta de origen como en la de destino.
Como alternativa a este proceso, puede anexar un token de SAS a la URL de origen o a la de destino en cada comando 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 a redes tanto en 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.
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
enfalse
(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 quiere conservar esas etiquetas, tendrá que volver a aplicarlas a los blobs de destino. Para 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>'
Los
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, por lo que cuando el comando devuelve un resultado, eso indica que se han copiado 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
Los
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. Todos los archivos se han copiado cuando vuelve el comando.
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
Los
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. Todos los archivos se han copiado cuando vuelve el comando.
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
Los
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, por lo que cuando el comando devuelve un resultado, eso indica que se han copiado 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 está usando la autorización de Microsoft Entra, a su entidad de seguridad se le debe asignar el rol Propietario de datos de Blob de almacenamiento, o se le debe conceder permiso para la Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Operación del proveedor de recursos de Azure a través de un rol personalizado de Azure. Si usa un token de firma de acceso compartido (SAS), ese token debe proporcionar acceso a las etiquetas del blob mediante el permiso t
de SAS.
Para agregar etiquetas, use la opción --blob-tags
junto con un par clave-valor codificado como dirección URL.
Por ejemplo, para agregar la clave my tag
y un valor my tag value
, agregaría --blob-tags='my%20tag=my%20tag%20value'
al parámetro de destino.
Separe varias etiquetas de índice mediante el carácter de Y comercial (&
). Por ejemplo, si quiere agregar una clave my second tag
y un 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. Todos los archivos se han copiado cuando vuelve el comando.
Nota:
Si especifica un directorio, un contenedor o una cuenta como origen, todos los blobs que se copian en el destino tendrán 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.
Pasos siguientes
Encuentre más ejemplos en estos artículos:
- Ejemplos: Carga
- Ejemplos: descarga
- Ejemplos: Sincronización
- Ejemplos: Cubos de Amazon S3
- Ejemplos: Google Cloud Storage
- Ejemplos: Azure Files
- Tutorial: Migración de datos locales al almacenamiento en la nube mediante AzCopy
Consulte estos artículos para configurar opciones, optimizar el rendimiento y solucionar problemas: