Introducción a AzCopy

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. En este artículo sirve de ayuda para descargar AzCopy, conectarse a la cuenta de almacenamiento y, a continuación, transferir datos.

Nota:

AzCopy V10 es la versión admitida actualmente de AzCopy.

Si necesita usar una versión anterior de AzCopy, consulte la sección Uso de la versión anterior de AzCopy de este artículo.

En este vídeo se muestra cómo descargar y ejecutar la utilidad AzCopy.

Los pasos del vídeo también se describen en las secciones siguientes.

Casos de uso de AzCopy

AzCopy se puede usar para copiar los datos hacia, desde o entre cuentas de Almacenamiento de Azure. Entre los casos de uso comunes se incluye:

  • Copia de datos desde un origen local a una cuenta de almacenamiento de Azure
  • Copia de datos de una cuenta de Almacenamiento de Azure a un origen local
  • Copia de datos de una cuenta de almacenamiento a otra cuenta de almacenamiento

Cada uno de estos casos de uso tiene opciones únicas. Por ejemplo, AzCopy tiene comandos nativos para copiar o sincronizar datos. Esto hace que AzCopy sea una herramienta flexible que se pueda usar para las actividades de copia única y los escenarios de sincronización en curso. AzCopy también le permite tener como destino servicios de almacenamiento específicos, como Azure Blob Storage o Azure Files. Esto le permite copiar datos de blob a archivo, archivo a blob, archivo a archivo, archivo a archivo, etc.

Para más información sobre estos escenarios, consulte:

Nota:

AzCopy no admite escenarios en los que el origen o el destino se están cambiando activamente durante la transferencia.

Instalación de AzCopy en Linux mediante un administrador de paquetes

Puede instalar AzCopy mediante un paquete de Linux hospedado en el repositorio de software de Linux para productos de Microsoft.

  1. Descargue el paquete de configuración del repositorio.

    Importante

    Asegúrese de reemplazar la distribución y la versión por las cadenas adecuadas.

    curl -sSL -O https://packages.microsoft.com/config/<distribution>/<version>/packages-microsoft-prod.rpm
    
  2. Instale el paquete de configuración del repositorio.

    sudo rpm -i packages-microsoft-prod.rpm
    
  3. Elimine el paquete de configuración del repositorio después de instalarlo.

    rm packages-microsoft-prod.rpm
    
  4. Actualice los archivos de índice del paquete.

    sudo dnf update
    
  5. Instale AzCopy.

    sudo dnf install azcopy
    

Descarga del archivo binario portátil de AzCopy

Como alternativa a instalar un paquete, puede descargar el archivo ejecutable AzCopy V10 en cualquier directorio del equipo.

Estos archivos se comprimen como un archivo ZIP (Windows y Mac) o un archivo TAR (Linux). Para descargar y descomprimir el archivo tar en Linux, consulte la documentación de su distribución de Linux.

Para obtener información detallada sobre las versiones de AzCopy, vea la página de la versión de AzCopy.

Nota:

Si desea copiar datos desde y hacia su servicio de almacenamiento de Azure Table, instale AzCopy versión 7.3.

Ejecución de AzCopy

Para mayor comodidad, considere la posibilidad de agregar la ubicación del directorio del ejecutable de AzCopy a la ruta de acceso del sistema para facilitar su uso. De este modo, puede escribir azcopy desde cualquier directorio del sistema.

Si decide no agregar el directorio de AzCopy a la ruta de acceso, tendrá que cambiar los directorios a la ubicación de su archivo ejecutable de AzCopy y escribir azcopy o .\azcopy en los símbolos del sistema de Windows PowerShell.

Como propietario de la cuenta de Azure Storage, no se le asignan automáticamente permisos para tener acceso a datos. Antes de hacer nada significativo con AzCopy, debe decidir cómo proporcionará las credenciales de autorización al servicio de almacenamiento.

Autorización de AzCopy

Puede proporcionar las credenciales de autorización mediante Microsoft Entra ID o mediante un token de firma de acceso compartido (SAS).

Opción 1: Uso de Microsoft Entra ID

Con Microsoft Entra ID, puede proporcionar credenciales una vez en lugar de anexar un token de SAS a cada comando.

Opción 2: Uso de un token de SAS

Puede anexar un token de SAS a cada dirección URL de origen o destino que use en los comandos de AzCopy.

El comando de este ejemplo copia recursivamente los datos desde un directorio local a un contenedor de blobs. Un token de SAS ficticio se anexa al final de la dirección URL del contenedor.

azcopy copy "C:\local\path" "https://account.blob.core.windows.net/mycontainer1/?sv=2018-03-28&ss=bjqt&srt=sco&sp=rwddgcup&se=2019-05-01T05:01:17Z&st=2019-04-30T21:01:17Z&spr=https&sig=MGCXiyEzbtttkr3ewJIh2AR8KrghSy1DGM9ovN734bQF4%3D" --recursive=true

Para más información sobre los tokens de SAS y de cómo obtener uno, consulte Uso de firmas de acceso compartido (SAS).

Nota:

El parámetro Se requiere transferencia segura de una cuenta de almacenamiento determina si la conexión a una cuenta de almacenamiento está protegida con Seguridad de la capa de transporte (TLS). Esta opción está habilitada de forma predeterminada.

Transferencia de datos

Después de autorizar la identidad o de obtener un token de SAS, puede comenzar la transferencia de datos.

Para obtener ejemplos de comandos, consulte cualquiera de estos artículos.

Servicio Artículo
Azure Blob Storage Carga de archivos en Azure Blob Storage
Azure Blob Storage Descarga de blobs desde Azure Blob Storage
Azure Blob Storage Copia de blobs entre cuentas de Azure Storage
Azure Blob Storage Sincronización con Azure Blob Storage
Azure Files Transferencia de datos con AzCopy y File Storage
Amazon S3 Copia de datos de Amazon S3 a Azure Storage
Google Cloud Storage Copia de datos de Google Cloud Storage a Azure Storage (versión preliminar)
Almacenamiento de Azure Stack Transferencia de datos con AzCopy y Azure Stack Storage

Obtención de ayuda sobre los comandos

Para ver una lista de los comandos, escriba azcopy -h y, a continuación, presione la tecla ENTRAR.

Para obtener información acerca de un comando específico, basta con que incluya el nombre del comando (por ejemplo: azcopy list -h).

Ayuda en línea

Lista de comandos

En la tabla siguiente se enumeran todos los comandos de AzCopy v10. Cada comando está vinculado a un artículo de referencia.

Get-Help Descripción
azcopy bench Ejecuta una prueba comparativa de rendimiento al cargar o descargar datos de prueba hacia o desde un destino especificado.
azcopy copy Copia los datos de origen en una ubicación de destino.
azcopy doc Genera documentación para la herramienta en formato de Markdown.
azcopy env Muestra las variables de entorno que pueden configurar el comportamiento de AzCopy.
azcopy jobs Subcomandos relacionados con la administración de trabajos.
azcopy jobs clean Elimina todos los archivos de registro y de plan de todos los trabajos.
azcopy jobs list Muestra información sobre todos los trabajos.
azcopy jobs remove Quita todos los archivos asociados al identificador de trabajo especificado.
azcopy jobs resume Reanuda el trabajo existente con el identificador de trabajo especificado.
azcopy jobs show Muestra información detallada del identificador de trabajo especificado.
azcopy list Enumera las entidades de un recurso determinado.
azcopy login Inicie sesión en Microsoft Entra ID para acceder a los recursos de Azure Storage.
azcopy login status Enumera las entidades de un recurso determinado.
azcopy logout Cierra la sesión del usuario y finaliza el acceso a los recursos de Azure Storage.
azcopy make Crea un contenedor o un recurso compartido de archivos.
azcopy remove Elimine blobs o archivos de una cuenta de almacenamiento de Azure.
azcopy sync Replica la ubicación de origen en la ubicación de destino.
azcopy set-properties Cambie el nivel de acceso de uno o varios blobs y reemplace (sobrescriba) los metadatos y las etiquetas de índice de uno o varios blobs.

Nota:

AzCopy no tiene un comando para cambiar el nombre de los archivos.

Uso en un script

Con el tiempo, el vínculo de descarga de AzCopy apuntará a nuevas versiones de AzCopy. Si el script descarga AzCopy, puede que deje de funcionar si una versión más reciente de AzCopy modifica las características de las que depende.

Para evitar estos problemas, obtenga un vínculo estático (sin cambios) a la versión actual de AzCopy. De este modo, el script descarga exactamente la misma versión de AzCopy cada vez que se ejecuta.

Para obtener el vínculo, ejecute este comando:

Sistema operativo Get-Help
Linux curl -s -D- https://aka.ms/downloadazcopy-v10-linux \| grep ^Location
Windows PowerShell (Invoke-WebRequest -Uri https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction SilentlyContinue).headers.location
PowerShell 6.1+ (Invoke-WebRequest -Uri https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction SilentlyContinue -SkipHttpErrorCheck).headers.location

Nota:

Para Linux, --strip-components=1 en el comando tar elimina la carpeta de nivel superior que contiene el nombre de la versión y, en su lugar, extrae el archivo binario directamente en la carpeta actual. Esto permite que el script se actualice con una nueva versión de azcopy al actualizar únicamente la dirección URL de wget.

La dirección URL aparece en la salida de este comando. A continuación, el script puede descargar AzCopy mediante esa dirección URL.

Linux

wget -O azcopy_v10.tar.gz https://aka.ms/downloadazcopy-v10-linux && tar -xf azcopy_v10.tar.gz --strip-components=1

Windows PowerShell

Invoke-WebRequest -Uri 'https://azcopyvnext.azureedge.net/release20220315/azcopy_windows_amd64_10.14.1.zip' -OutFile 'azcopyv10.zip'
Expand-archive -Path '.\azcopyv10.zip' -Destinationpath '.\'
$AzCopy = (Get-ChildItem -path '.\' -Recurse -File -Filter 'azcopy.exe').FullName
# Invoke AzCopy 
& $AzCopy

PowerShell 6.1+

Invoke-WebRequest -Uri 'https://azcopyvnext.azureedge.net/release20220315/azcopy_windows_amd64_10.14.1.zip' -OutFile 'azcopyv10.zip'
$AzCopy = (Expand-archive -Path '.\azcopyv10.zip' -Destinationpath '.\' -PassThru | where-object {$_.Name -eq 'azcopy.exe'}).FullName
# Invoke AzCopy
& $AzCopy

Escape de caracteres especiales en tokens de SAS

En los archivos por lotes con la extensión .cmd, tendrá que usar una secuencia de escape en los caracteres % que aparezcan en los tokens de SAS. Para ello, agregue un carácter % adicional junto a los caracteres % existentes en la cadena de token de SAS. La secuencia de caracteres resultante aparece como %%. Asegúrese de agregar un ^ adicional antes de cada carácter de & para crear la secuencia de caracteres ^&.

Ejecutar scripts mediante Jenkins

Si tiene previsto usar Jenkins para ejecutar scripts, asegúrese de colocar el siguiente comando al principio del script.

/usr/bin/keyctl new_session

Uso en el Explorador de Azure Storage

El Explorador de Storage usa AzCopy para realizar todas sus operaciones de transferencia de datos. Puede usar el Explorador de Storage si quiere aplicar las ventajas de rendimiento de AzCopy pero prefiere usar una interfaz gráfica de usuario, en lugar de la línea de comandos, para interactuar con los archivos.

El Explorador de Azure Storage utiliza la clave de la cuenta para realizar operaciones, por lo que después de iniciar sesión en el Explorador de Azure Storage, no tendrá que proporcionar credenciales de autorización adicionales.

Configuración, optimización y corrección

Consulte los siguientes recursos:

Usar una versión anterior (en desuso)

Si necesita usar la versión anterior de AzCopy, consulte alguno de los vínculos siguientes:

Nota

Estas versiones de AzCopy están en desuso. Microsoft recomienda usar AzCopy v10.

Pasos siguientes

Si tiene alguna pregunta, problemas o comentarios generales, envíelos en la página GitHub.