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.
Puede sincronizar el almacenamiento local con Azure Blob Storage mediante la utilidad de línea de comandos AzCopy v10.
Puede sincronizar el contenido de un sistema de archivos local con un contenedor de blobs. También puede sincronizar contenedores y directorios virtuales entre sí. La sincronización es unidireccional. En otras palabras, tendrá que elegir cuál de estos dos puntos de conexión es el origen y cuál es el destino. La sincronización también usa las API de servidor a servidor. Los ejemplos presentados en esta sección también funcionan con cuentas que tienen un espacio de nombres jerárquico.
Nota:
La versión actual de AzCopy no se sincroniza entre otros orígenes y destinos (por ejemplo: almacenamiento de archivos o depósitos de Amazon Web Services (AWS) S3).
Para ver ejemplos de otros tipos de tareas, como cargar archivos, descargar blobs o copiar blobs entre cuentas, consulte los vínculos presentados en la sección Pasos siguientes de este artículo.
Comienza
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 hecho que ha proporcionado credenciales de autorización mediante Microsoft Entra ID.
Si prefiere usar un token de SAS para autorizar el acceso a los datos de blob, puede anexar ese token a la dirección URL de recursos en cada comando AzCopy. Por ejemplo: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'
.
Directrices
De manera predeterminada, el comando sync compara nombres de archivo y las marcas de tiempo de la última modificación. Puede invalidar ese comportamiento para usar hashes MD5 en lugar de marcas de tiempo modificadas por última vez mediante la marca --compare-hash
. Establezca la marca opcional --delete-destination
en un valor de true
o prompt
para eliminar archivos en el directorio de destino si esos archivos ya no existen en el directorio de origen.
Si establece la marca
--delete-destination
entrue
, AzCopy elimina los archivos sin proporcionar un aviso. Si quiere que aparezca un mensaje antes de que AzCopy elimine un archivo, establezca la marca--delete-destination
enprompt
.Si tiene previsto establecer la marca
--delete-destination
enprompt
ofalse
, considere la posibilidad de usar el comando copy en lugar del comando sync y establezca el parámetro--overwrite
enifSourceNewer
. El comando copy consume menos memoria y genera menos costos de facturación porque una operación de copia no tiene que indexar el origen o el destino antes de mover archivos.Si no tiene previsto usar la marca
--compare-hash
, entonces la máquina en la que ejecute el comando de sincronización debe tener un reloj del sistema preciso porque las últimas horas modificadas son fundamentales para determinar si se debe transferir un archivo. Si el sistema tiene un sesgo de reloj importante, evite modificar los archivos en el destino demasiado cerca de la hora en que planea ejecutar un comando de sincronización.AzCopy usa API de servidor a servidor para sincronizar datos entre cuentas de almacenamiento. Esto significa que los datos se copian directamente entre los servidores de almacenamiento. Sin embargo, AzCopy configura y supervisa cada transferencia y, para cuentas de almacenamiento más grandes (por ejemplo, cuentas que contienen millones de blobs), AzCopy podría necesitar una cantidad importante de recursos de proceso para realizar estas tareas. Por tanto, si ejecuta AzCopy desde una máquina virtual (VM), asegúrese de que la máquina virtual tiene suficientes núcleos y memoria para controlar la carga.
- Para evitar eliminaciones accidentales, asegúrese de habilitar la característica de eliminación temporal antes de usar la
--delete-destination=prompt|true
marca .
Actualización de un contenedor con cambios en un sistema de archivos local
En este caso, el contenedor es el destino y el sistema de archivos local es el origen.
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 sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Ejemplo
azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
Actualización de un sistema de archivos local con los cambios realizados en un contenedor
En este caso, el sistema de archivos local es el destino y el contenedor es el origen.
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 sync 'https://<storage-account-name>.blob.core.windows.net/<container-name>' 'C:\myDirectory' --recursive
Ejemplo
azcopy sync 'https://mystorageaccount.blob.core.windows.net/mycontainer' 'C:\myDirectory' --recursive
Actualización de un contenedor con cambios en otro contenedor
El primer contenedor que aparece en este comando es el origen. El segundo es el destino.
Si proporciona credenciales de autorización mediante el identificador de Entra de Microsoft, asegúrese de que ha configurado los roles adecuados en la cuenta de origen y destino. Consulte la opción 1: Usar el identificador de Entra de Microsoft.
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 sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Ejemplo
azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Actualización de un directorio con cambios en un directorio de otro contenedor
El primer directorio que aparece en este comando es el origen. El segundo es el destino.
Si proporciona credenciales de autorización mediante el identificador de Entra de Microsoft, asegúrese de que ha configurado los roles adecuados en la cuenta de origen y destino. Consulte la opción 1: Usar el identificador de Entra de Microsoft.
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 sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive
Ejemplo
azcopy sync 'https://mysourceaccount.blob.core.windows.net/<container-name>/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myDirectory' --recursive
Actualización de un contenedor con cambios en otro contenedor mediante un token de SAS
El primer contenedor que aparece en este comando es el origen. El segundo es el destino.
Si proporciona un token de SAS, asegúrese de usar un token de SAS que corresponda a la cuenta de almacenamiento de origen y destino, mientras usa azcopy sync.
Sintaxis
azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<destination-SAS-token>' --recursive
Ejemplo
azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/?sv=2018-03-28&ss=qrdu&dst=mco&kp=rwdlapuc&se=2019-07-04T05:30:08Z&st=2019-07-03T21:31:10Z&spr=https&sig=CAfhgnc9gdGktvB=yzx9CAjMKeeN678yiyFwdNU092JC8%6D' --recursive
Sugerencia
Si va a copiar un tamaño mayor de datos, puede usar :Explorador de Azure Storage.
Compruebe los detalles de tamaño que ha copiado. En el menú de la barra superior, elija Más> para ayudarle a obtener los detalles del directorio, incluido el tamaño en bytes.
Sincronización con marcas opcionales
Puede modificar las operaciones de sincronización mediante marcas opcionales. Estos son algunos ejemplos.
Escenario | Bandera |
---|---|
Especifique cómo se deben validar estrictamente los hash md5 al descargar. | --check-md5=[NoCheck|LogOnly|FailIfDifferent|FailIfDifferentOrMissing] |
Excluir archivos en función de un patrón. | --exclude-path |
Especifique el grado de detalles que quiere que sean las entradas de registro relacionadas con la sincronización. | --log-level=[WARNING|ERROR|INFO|NONE] |
Especifique cómo copiar un archivo vhd. | --blob-type=BlockBlob --include-pattern "*.vhd" o --blob-type=BlockBlob |
Para obtener una lista completa de marcas, consulte opciones.
Nota:
La --recursive
marca se establece en true
de forma predeterminada. Las --exclude-pattern
y --include-pattern
banderas se aplican solo a los nombres de archivo y no a otras partes de la ruta del archivo.
Pasos siguientes
Encuentre más ejemplos en estos artículos:
- Ejemplos: Carga
- Ejemplos: descarga
- Ejemplos: Copia entre cuentas
- 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: