Introducción a AzCopyGet started with 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.AzCopy is a command-line utility that you can use to copy blobs or files to or from a storage account. En este artículo sirve de ayuda para descargar AzCopy, conectarse a la cuenta de almacenamiento y, a continuación, transferir archivos.This article helps you download AzCopy, connect to your storage account, and then transfer files.

Nota

AzCopy V10 es la versión admitida actualmente de AzCopy.AzCopy V10 is the currently supported version of AzCopy.

Si necesita usar AzCopy v8.1, consulte la sección Uso de la versión anterior de AzCopy de este artículo.If you need to use AzCopy v8.1, see the Use the previous version of AzCopy section of this article.

Descargar AzCopyDownload AzCopy

En primer lugar, descargue el archivo ejecutable de AzCopy V10 en cualquier directorio en el equipo.First, download the AzCopy V10 executable file to any directory on your computer.

AzCopy V10 es solo un archivo ejecutable, de modo que no hay que instalar nada.AzCopy V10 is just an executable file, so there's nothing to install.

Nota

Si desea copiar datos desde y hacia su servicio de almacenamiento de Azure Table, instale AzCopy versión 7.3.If you want to copy data to and from your Azure Table storage service, then install AzCopy version 7.3.

Ejecución de AzCopyRun 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.For convenience, consider adding the directory location of the AzCopy executable to your system path for ease of use. De este modo, puede escribir azcopy desde cualquier directorio del sistema.That way you can type azcopy from any directory on your system.

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.If you choose not to add the AzCopy directory to your path, you'll have to change directories to the location of your AzCopy executable and type azcopy or .\azcopy in Windows PowerShell command prompts.

Para ver una lista de los comandos, escriba azcopy -h y, a continuación, presione la tecla ENTRAR.To see a list of commands, type azcopy -h and then press the ENTER key.

Para obtener información acerca de un comando específico, basta con que incluya el nombre del comando (por ejemplo: azcopy list -h).To learn about a specific command, just include the name of the command (For example: azcopy list -h).

Ayuda en línea

Nota

Como propietario de la cuenta de Azure Storage, no se le asignan automáticamente permisos para tener acceso a datos.As an owner of your Azure Storage account, you aren't automatically assigned permissions to access data. Antes de hacer nada significativo con AzCopy, debe decidir cómo proporcionará las credenciales de autorización al servicio de almacenamiento.Before you can do anything meaningful with AzCopy, you need to decide how you'll provide authorization credentials to the storage service.

Elección del modo de proporcionar las credenciales de autorizaciónChoose how you'll provide authorization credentials

Puede proporcionar las credenciales de autorización mediante Azure Active Directory (AD) o mediante un token de firma de acceso compartido (SAS).You can provide authorization credentials by using Azure Active Directory (AD), or by using a Shared Access Signature (SAS) token.

Use esta tabla como guía:Use this table as a guide:

Tipo de almacenamientoStorage type Método de autorización admitido actualmenteCurrently supported method of authorization
Blob StorageBlob storage Azure AD y SASAzure AD & SAS
Almacenamiento de blobs (espacio de nombres jerárquico)Blob storage (hierarchial namespace) Azure AD y SASAzure AD & SAS
Almacenamiento de archivosFile storage SAS soloSAS only

Opción 1: Uso de Azure Active DirectoryOption 1: Use Azure Active Directory

Con Azure Active Directory, puede proporcionar credenciales una vez en lugar de anexar un token de SAS a cada comando.By using Azure Active Directory, you can provide credentials once instead of having to append a SAS token to each command.

Nota

En la versión actual, si tiene previsto copiar blobs entre distintas cuentas de almacenamiento, deberá anexar un token de SAS a cada URL de origen.In the current release, if you plan to copy blobs between storage accounts, you’ll have to append a SAS token to each source URL. Puede omitir el token de SAS solo de la dirección URL de destino.You can omit the SAS token only from the destination URL. Si necesita ejemplos, vea Copia de blobs entre cuentas de almacenamiento.For examples, see Copy blobs between storage accounts.

El nivel de autorización que necesita se basa en si va a cargar los archivos o solo a descargarlos.The level of authorization that you need is based on whether you plan to upload files or just download them.

Si solo quiere descargar los archivos, compruebe que el lector de datos de blobs de almacenamiento se haya asignado a su identidad de usuario, entidad administrada o entidad de servicio.If you just want to download files, then verify that the Storage Blob Data Reader has been assigned to your user identity, managed identity, or service principal.

Las identidades de usuario, las entidades administradas y las entidades de servicio son un tipo de entidad de seguridad, por lo que vamos a usar el término entidad de seguridad durante el resto de este artículo.User identities, managed identities, and service principals are each a type of security principal, so we'll use the term security principal for the remainder of this article.

Si desea cargar archivos, compruebe que uno de estos roles se ha asignado a la entidad de seguridad:If you want to upload files, then verify that one of these roles has been assigned to your security principal:

Estos roles pueden asignarse a la entidad de seguridad en cualquiera de estos ámbitos:These roles can be assigned to your security principal in any of these scopes:

  • Contenedor (sistema de archivos)Container (file system)
  • Cuenta de almacenamientoStorage account
  • Resource groupResource group
  • SubscriptionSubscription

Para aprender a verificar y asignar roles, consulte Conceder acceso a datos blob y cola de Azure con RBAC en Azure Portal.To learn how to verify and assign roles, see Grant access to Azure blob and queue data with RBAC in the Azure portal.

Nota

Tenga en cuenta que las asignaciones de roles RBAC pueden tardar hasta cinco minutos en propagarse.Keep in mind that RBAC role assignments can take up to five minutes to propagate.

No es necesario tener asignado uno de estos roles a su entidad de seguridad si esta se agrega a la lista de control de acceso (ACL) del directorio o contenedor de destino.You don't need to have one of these roles assigned to your security principal if your security principal is added to the access control list (ACL) of the target container or directory. En la ACL, la entidad de seguridad necesita permiso de escritura en el directorio de destino y permiso de ejecución en el contenedor y cada directorio primario.In the ACL, your security principal needs write permission on the target directory, and execute permission on container and each parent directory.

Para más información, consulte Control de acceso en Azure Data Lake Storage Gen2.To learn more, see Access control in Azure Data Lake Storage Gen2.

Autenticación de una identidad de usuarioAuthenticate a user identity

Después de comprobar que se ha dado el nivel de autorización necesario a su identidad de usuario, abra un símbolo del sistema, escriba el comando siguiente y, a continuación, presione la tecla ENTRAR.After you've verified that your user identity has been given the necessary authorization level, open a command prompt, type the following command, and then press the ENTER key.

azcopy login

Si pertenece a más de una organización, incluya el identificador de inquilino de la organización a la que pertenece la cuenta de almacenamiento.If you belong to more than one organization, include the tenant ID of the organization to which the storage account belongs.

azcopy login --tenant-id=<tenant-id>

Reemplace el marcador de posición <tenant-id> por el identificador de inquilino de la organización a la que pertenece la cuenta de almacenamiento.Replace the <tenant-id> placeholder with the tenant ID of the organization to which the storage account belongs. Para buscar el identificador de inquilino, seleccione Azure Active Directory > Propiedades > Identificador de directorio en Azure Portal.To find the tenant ID, select Azure Active Directory > Properties > Directory ID in the Azure portal.

Este comando devuelve un código de autenticación y la dirección URL de un sitio web.This command returns an authentication code and the URL of a website. Abra el sitio web, proporcione el código y, después, elija el botón Siguiente.Open the website, provide the code, and then choose the Next button.

Crear un contenedor

Aparece una ventana de inicio de sesión.A sign-in window will appear. En esa ventana, inicie sesión en la cuenta de Azure con sus credenciales de la cuenta de Azure.In that window, sign into your Azure account by using your Azure account credentials. Cuando haya iniciado sesión correctamente, puede cerrar la ventana del explorador y comenzar a usar AzCopy.After you've successfully signed in, you can close the browser window and begin using AzCopy.

Autenticación de una entidad de servicioAuthenticate a service principal

Esta es una buena opción si va a usar AzCopy dentro de un script que se ejecuta sin interacción del usuario, en particular si se ejecuta de forma local.This is a great option if you plan to use AzCopy inside of a script that runs without user interaction, particularly when running on-premises. Si tiene previsto ejecutar AzCopy en máquinas virtuales que se ejecutan en Azure, una identidad de servicio administrada es más fácil de administrar.If you plan to run AzCopy on VMs that run in Azure, a managed service identity is easier to administer. Para obtener más información, consulte la sección Autenticación de una identidad administrada de este artículo.To learn more, see the Authenticate a managed identity section of this article.

Antes de ejecutar un script, deberá iniciar sesión interactivamente al menos una vez para poder proporcionar a AzCopy las credenciales de la entidad de servicio.Before you run a script, you have to sign-in interactively at least one time so that you can provide AzCopy with the credentials of your service principal. Esas credenciales se almacenan en un archivo seguro y cifrado para que el script no tenga que proporcionar esa información confidencial.Those credentials are stored in a secured and encrypted file so that your script doesn't have to provide that sensitive information.

Para iniciar sesión en su cuenta, use un secreto de cliente o la contraseña de un certificado asociado al registro de la aplicación de la entidad de servicio.You can sign into your account by using a client secret or by using the password of a certificate that is associated with your service principal's app registration.

Para obtener más información sobre cómo crear una entidad de servicio, consulte Cómo: portal para crear una aplicación de Azure AD y una entidad de servicio que puedan acceder a los recursos.To learn more about creating service principal, see How to: Use the portal to create an Azure AD application and service principal that can access resources.

Para obtener más información sobre las entidades de servicio en general, consulte Objetos de aplicación y de entidad de servicio de Azure Active Directory.To learn more about service principals in general, see Application and service principal objects in Azure Active Directory

Uso de un secreto de clienteUsing a client secret

Para comenzar, establezca la variable de entorno AZCOPY_SPA_CLIENT_SECRET en el secreto de cliente del registro de la aplicación de la entidad de servicio.Start by setting the AZCOPY_SPA_CLIENT_SECRET environment variable to the client secret of your service principal's app registration.

Nota

Asegúrese de establecer este valor desde el símbolo del sistema y no en la configuración de la variable de entorno del sistema operativo.Make sure to set this value from your command prompt, and not in the environment variable settings of your operating system. De este modo, el valor está disponible solo en la sesión actual.That way, the value is available only to the current session.

En este ejemplo se muestra cómo podría hacer esto en PowerShell.This example shows how you could do this in PowerShell.

$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"

Nota

Considere la posibilidad de utilizar un símbolo del sistema como se muestra en este ejemplo.Consider using a prompt as shown in this example. De este modo, la contraseña no aparecerá en el historial de comandos de la consola.That way, your password won't appear in your console's command history.

A continuación, escriba el comando siguiente y presione la tecla ENTRAR.Next, type the following command, and then press the ENTER key.

azcopy login --service-principal --application-id <application-id>

Reemplace el marcador de posición <application-id> por el identificador de aplicación del registro de la aplicación de la entidad de servicio.Replace the <application-id> placeholder with the application ID of your service principal's app registration.

Uso de un certificadoUsing a certificate

Si prefiere usar sus propias credenciales para la autorización, puede cargar un certificado en el registro de la aplicación y utilizar ese certificado para iniciar sesión.If you prefer to use your own credentials for authorization, you can upload a certificate to your app registration, and then use that certificate to login.

Además de cargar el certificado en el registro de la aplicación, también deberá tener una copia del certificado guardada en el equipo o la máquina virtual donde se ejecutará AzCopy.In addition to uploading your certificate to your app registration, you'll also need to have a copy of the certificate saved to the machine or VM where AzCopy will be running. Esta copia del certificado debe tener el formato .PFX o .PEM e incluir la clave privada.This copy of the certificate should be in .PFX or .PEM format, and must include the private key. La clave privada debe estar protegida por contraseña.The private key should be password-protected. Si está usando Windows y el certificado solo existe en un almacén de certificados, asegúrese de exportarlo a un archivo PFX (incluida la clave privada).If you're using Windows, and your certificate exists only in a certificate store, make sure to export that certificate to a PFX file (including the private key). Para obtener instrucciones, consulte Export-PfxCertificateFor guidance, see Export-PfxCertificate

A continuación, establezca la variable de entorno AZCOPY_SPA_CERT_PASSWORD en la contraseña del certificado.Next, set the AZCOPY_SPA_CERT_PASSWORD environment variable to the certificate password.

Nota

Asegúrese de establecer este valor desde el símbolo del sistema y no en la configuración de la variable de entorno del sistema operativo.Make sure to set this value from your command prompt, and not in the environment variable settings of your operating system. De este modo, el valor está disponible solo en la sesión actual.That way, the value is available only to the current session.

En este ejemplo se muestra cómo podría realizar esta tarea en PowerShell.This example shows how you could do this task in PowerShell.

$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"

A continuación, escriba el comando siguiente y presione la tecla ENTRAR.Next, type the following command, and then press the ENTER key.

azcopy login --service-principal --certificate-path <path-to-certificate-file>

Reemplace el marcador de posición <path-to-certificate-file> por la ruta de acceso completa o relativa al archivo del certificado.Replace the <path-to-certificate-file> placeholder with the relative or fully-qualified path to the certificate file. AzCopy guarda la ruta de acceso a este certificado, pero no guarda una copia del certificado, así que asegúrese de tener el certificado listo para usar.AzCopy saves the path to this certificate but it doesn't save a copy of the certificate, so make sure to keep that certificate in place.

Nota

Considere la posibilidad de utilizar un símbolo del sistema como se muestra en este ejemplo.Consider using a prompt as shown in this example. De este modo, la contraseña no aparecerá en el historial de comandos de la consola.That way, your password won't appear in your console's command history.

Autenticación de una identidad administradaAuthenticate a managed identity

Esta es una buena opción si va a usar AzCopy dentro de un script que se ejecuta sin interacción del usuario a partir de una máquina virtual de Azure.This is a great option if you plan to use AzCopy inside of a script that runs without user interaction, and the script runs from an Azure Virtual Machine (VM). Al usar esta opción, no tendrá que almacenar credenciales en la máquina virtual.When using this option, you won't have to store any credentials on the VM.

Puede iniciar sesión en su cuenta mediante el uso de una identidad administrada que abarque todo el sistema que haya habilitado en la máquina virtual, o bien con el identificador de cliente, de objeto o de recurso de una identidad administrada asignada por el usuario que haya asignado a la máquina virtual.You can sign into your account by using the a system-wide managed identity that you've enabled on your VM, or by using the client ID, Object ID, or Resource ID of a user-assigned managed identity that you've assigned to your VM.

Para obtener más información sobre cómo habilitar una identidad administrada que abarque todo el sistema o crear una identidad administrada asignada por el usuario, consulte Configurar identidades administradas para recursos de Azure en una VM mediante Azure Portal.To learn more about how to enable a system-wide managed identity or create a user-assigned managed identity, see Configure managed identities for Azure resources on a VM using the Azure portal.

Uso de una identidad administrada que abarque todo el sistemaUsing a system-wide managed identity

En primer lugar, asegúrese de haber habilitado una identidad administrada para todo el sistema en la máquina virtual.First, make sure that you've enabled a system-wide managed identity on your VM. Consulte Identidad administrada asignada por el sistema.See System-assigned managed identity.

A continuación, en la consola de comandos, escriba el comando siguiente y presione la tecla ENTRAR.Then, in your command console, type the following command, and then press the ENTER key.

azcopy login --identity
Uso de una identidad administrada asignada por el usuarioUsing a user-assigned managed identity

En primer lugar, asegúrese de haber habilitado una identidad administrada asignada por el usuario en la máquina virtual.First, make sure that you've enabled a user-assigned managed identity on your VM. Consulte Identidad administrada asignada por el usuario.See User-assigned managed identity.

A continuación, en la consola de comandos, escriba cualquiera de los siguientes comandos y, luego, presione la tecla Entrar.Then, in your command console, type any of the following commands, and then press the ENTER key.

azcopy login --identity --identity-client-id "<client-id>"

Reemplace el marcador de posición <client-id> por el identificador de cliente de la identidad administrada asignada por el usuario.Replace the <client-id> placeholder with the client ID of the user-assigned managed identity.

azcopy login --identity --identity-object-id "<object-id>"

Reemplace el marcador de posición <object-id> por el identificador de objeto de la identidad administrada asignada por el usuario.Replace the <object-id> placeholder with the object ID of the user-assigned managed identity.

azcopy login --identity --identity-resource-id "<resource-id>"

Reemplace el marcador de posición <resource-id> por el identificador de recurso de la identidad administrada asignada por el usuario.Replace the <resource-id> placeholder with the resource ID of the user-assigned managed identity.

Opción 2: Uso de un token de SASOption 2: Use a SAS token

Puede anexar un token de SAS a cada dirección URL de origen o destino que use en los comandos de AzCopy.You can append a SAS token to each source or destination URL that use in your AzCopy commands.

El comando de este ejemplo copia recursivamente los datos desde un directorio local a un contenedor de blobs.This example command recursively copies data from a local directory to a blob container. Un token de SAS ficticio se anexa al final de la dirección URL del contenedor.A fictitious SAS token is appended to the end of the of the container URL.

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).To learn more about SAS tokens and how to obtain one, see Using shared access signatures (SAS).

Transferencia de archivosTransfer files

Después de autenticar la identidad o de obtener un token de SAS, puede comenzar la transferencia de archivos.After you've authenticated your identity or obtained a SAS token, you can begin transferring files.

Para obtener ejemplos de comandos, consulte cualquiera de estos artículos.To find example commands, see any of these articles.

Uso de AzCopy en un scriptUse AzCopy in a script

Con el tiempo, el vínculo de descarga de AzCopy apuntará a nuevas versiones de AzCopy.Over time, the AzCopy download link will point to new versions of 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.If your script downloads AzCopy, the script might stop working if a newer version of AzCopy modifies features that your script depends upon.

Para evitar estos problemas, obtenga un vínculo estático (sin cambios) a la versión actual de AzCopy.To avoid these issues, obtain a static (un-changing) link to the current version of AzCopy. De este modo, el script descarga exactamente la misma versión de AzCopy cada vez que se ejecuta.That way, your script downloads the same exact version of AzCopy each time that it runs.

Para obtener el vínculo, ejecute este comando:To obtain the link, run this command:

Sistema operativoOperating system Get-HelpCommand
LinuxLinux curl -v https://aka.ms/downloadazcopy-v10-linux
WindowsWindows (curl https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction silentlycontinue).RawContent

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.For Linux, --strip-components=1 on the tar command removes the top-level folder that contains the version name, and instead extracts the binary directly into the current folder. Esto permite que el script se actualice con una nueva versión de azcopy al actualizar únicamente la dirección URL de wget.This allows the script to be updated with a new version of azcopy by only updating the wget URL.

La dirección URL aparece en la salida de este comando.The URL appears in the output of this command. A continuación, el script puede descargar AzCopy mediante esa dirección URL.Your script can then download AzCopy by using that URL.

Sistema operativoOperating system Get-HelpCommand
LinuxLinux wget -O azcopyv10.tar https://azcopyvnext.azureedge.net/release20190301/azcopy_linux_amd64_10.0.8.tar.gz tar -xf azcopyv10.tar --strip-components=1 ./azcopy
WindowsWindows Invoke-WebRequest https://azcopyvnext.azureedge.net/release20190517/azcopy_windows_amd64_10.1.2.zip -OutFile azcopyv10.zip <<Unzip here>>

Escape de caracteres especiales en tokens de SASEscape special characters in SAS tokens

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.In batch files that have the .cmd extension, you'll have to escape the % characters that appear in SAS tokens. Para ello, agregue un carácter % adicional junto a los caracteres % existentes en la cadena de token de SAS.You can do that by adding an addition % character next to existing % characters in the SAS token string.

Uso de AzCopy en el Explorador de StorageUse AzCopy in Storage Explorer

Si desea aprovechar las ventajas de rendimiento de AzCopy, pero prefiere usar el Explorador de Storage en lugar de la línea de comandos para interactuar con los archivos, habilite AzCopy en el Explorador de Storage.If you want to leverage the performance advantages of AzCopy, but you prefer to use Storage Explorer rather than the command line to interact with your files, then enable AzCopy in Storage Explorer.

En el Explorador de Storage, elija Versión preliminar->Use AzCopy for Improved Blob Upload and Download (Usar AzCopy para mejorar la carga y la descarga de blobs).In Storage Explorer, choose Preview->Use AzCopy for Improved Blob Upload and Download.

Habilitación de AzCopy como un motor de transferencia en el Explorador de Azure Storage

Nota

No debe habilitar esta opción si ha habilitado un espacio de nombres jerárquico en su cuenta de almacenamiento.You don't have to enable this setting if you've enabled a hierarchical namespace on your storage account. Esto se debe a que el Explorador de Storage utiliza automáticamente AzCopy en las cuentas de almacenamiento que tienen un espacio de nombres jerárquico.That's because Storage Explorer automatically uses AzCopy on storage accounts that have a hierarchical namespace.

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.Storage Explorer uses your account key to perform operations, so after you sign into Storage Explorer, you won't need to provide additional authorization credentials.

Uso de la versión anterior de AzCopyUse the previous version of AzCopy

Si necesita usar la versión anterior de AzCopy (AzCopy v8.1), consulte alguno de los vínculos siguientes:If you need to use the previous version of AzCopy (AzCopy v8.1), see either of the following links:

Configuración, optimización y solución de problemas de AzCopyConfigure, optimize, and troubleshoot AzCopy

Consulte Configuración, optimización y solución de problemas de AzCopySee Configure, optimize, and troubleshoot AzCopy

Pasos siguientesNext steps

Si tiene alguna pregunta, problemas o comentarios generales, envíelos en la página GitHub.If you have questions, issues, or general feedback, submit them on GitHub page.