La automatización está presente en todas partes hoy en día en TI. Desde la provisión de máquinas virtuales hasta el despliegue de sitios web, la automatización es clave especialmente cuando necesitas manejar varios elementos. Incluso la gestión de archivos entre el almacenamiento de Azure y tu máquina local puede ser automatizada utilizando un programa de utilidad llamado AzCopy.
AzCopy es una utilidad independiente que permite la gestión del almacenamiento de Azure. Con AzCopy, se pueden realizar varias operaciones. En este artículo, nos centraremos en:
- Crear contenedores de almacenamiento
- Copiar archivos locales a contenedores
- Copiar archivos entre contenedores
¡Comencemos!
Si aprendes mejor viendo videos, también puedes ver un video de TechSnips relacionado de cerca con lo que aprenderás en este artículo.
Prerrequisitos
Este artículo será un recorrido que demostrará varias tareas. Si deseas seguir adelante, asegúrate de cumplir con la siguiente lista de requisitos antes de comenzar.
- Una suscripción de Azure. Si aún no tienes una, puedes solicitar una suscripción de prueba.
- Cuenta de almacenamiento de Azure. Consulta Crea una cuenta de almacenamiento para obtener más información.
- AzCopy se descargó y autenticó (consulta el artículo Cómo descargar e instalar la herramienta AZCopy para aprender cómo configurarlo)
Creación de nuevos contenedores de almacenamiento
En primer lugar, usemos AzCopy para crear nuevos contenedores de almacenamiento en una cuenta de almacenamiento existente. En el ejemplo que usarás, crearás dos nuevos contenedores llamados container1 y container2.
Nota: Antes de crear un nuevo contenedor, debes conocer la URL de punto final del contenedor. La URL de punto final sigue el formato: https://[nombredeCuentaDeAlmacenamiento].blob.core.windows.net/[nombre_del_contenedor].
Primero, define la URL de punto final. En este ejemplo, los contenedores se crearán en una cuenta de almacenamiento llamada storageaccount1207 creando dos URL de punto final:
- https://storageaccount1207.blob.core.windows.net/container1
- https://storageaccount1207.blob.core.windows.net/container2
Ahora que conoces las URL de punto final, usa el comando azcopy make
pasando cada URL de punto final como parámetro como se muestra a continuación.

Copiando archivos hacia/desde contenedores de Azure
Una vez que tienes creado un contenedor de almacenamiento, probablemente te estés preguntando “¿Cómo subo archivos al almacenamiento de blobs de Azure?”. Puedes lograrlo con AzCopy utilizando el comando azcopy copy
. Puedes usar AzCopy para copiar archivos PST, VHD y más.
Usando Autenticación OAuth
Cuando se utiliza AzCopy para copiar archivos a blobs, tienes un par de opciones para la autenticación. Dado que se presume que ya has autenticado en Azure Storage (ya que estaba en los requisitos previos), simplemente puedes ejecutar azcopy copy
especificando una ruta de archivo local seguida de una URL de punto de conexión de contenedor como se muestra a continuación.
Al no especificar ningún otro parámetro, estás utilizando la autenticación de OAuth.

¿Cómo sabes si el archivo se copió al contenedor de blobs de Azure? Puedes usar el comando azcopy list [url del contenedor]
. Mira el ejemplo a continuación que muestra que el archivo file1.txt
existe.

Para descargar un archivo del blob de Azure al directorio local, solo necesitas intercambiar los lugares de los argumentos de origen y destino. Mira el ejemplo a continuación.

Usando un Token de Firma de Acceso Compartido (SAS)
Para usar un token SAS, primero debes generar uno. Si no sabes cómo generar un token SAS, consulta el artículo Cómo Generar un Token SAS de Azure para Acceder a Cuentas de Almacenamiento.
Una vez que tengas un token SAS disponible, puedes agregar el token a la URL del contenedor de destino como un parámetro HTTP como se muestra a continuación.
Si estás usando PowerShell y almacenaste el token en una variable (por ejemplo, $token
), puedes pasar esa variable en lugar de la cadena completa del token como se muestra en el siguiente comando.

Usando el mismo token (asumiendo que aún está dentro de su período de validez), también puedes descargar archivos desde el almacenamiento de Azure al almacenamiento local. El ejemplo a continuación copia el archivo file1.txt
desde el almacenamiento de Azure con un token SAS.
En el código a continuación, puedes ver que esta vez en lugar de agregar el token después del nombre del contenedor, se agrega primero el nombre del archivo. Esto indica a AzCopy que copie un archivo específico usando la autenticación SAS.

Copiando un directorio hacia/desde el almacenamiento de Azure
Si tienes muchos archivos para transferir o descargar desde Azure, también puedes copiar directorios enteros de una vez usando azcopy copy
. El comando para hacerlo no es muy diferente de lo que usas para copiar archivos individuales.
A continuación puedes ver un comando que copia recursivamente C:\\MyDir
al contenedor de blobs container1. El parámetro --recursive
es clave aquí. La bandera --recursive
al final del comando indica que se copiarán todos los contenidos del directorio principal y subdirectorios que puedan existir.
A continuación, puedes ver que diez archivos dentro de la carpeta C:\MyDir fueron copiados correctamente según el resumen del trabajo.

Copiando archivos entre contenedores de almacenamiento de Azure
A lo largo de este artículo, has estado utilizando bastante el comando azcopy copy
. ¡No hay necesidad de detenerse ahora! No solo puedes copiar directorios y archivos de/a local, sino que también puedes copiar blobs entre contenedores de almacenamiento.
En lugar de usar una ruta de archivo local, cambiarías los parámetros para usar una URL de un contenedor de blobs como origen y otra URL de un contenedor de blobs como destino.
Ya has creado dos contenedores de almacenamiento llamados container1 y container2. En esta sección, vamos a copiar archivos, directorios e incluso el contenedor de blobs completo de container1 a container2.
Para copiar archivos de un contenedor a otro, primero, genera un nuevo token SAS. Dado que los dos contenedores pertenecen a la misma cuenta de almacenamiento, el mismo token se puede usar para el origen y el destino.
Suponiendo que hayas guardado la cadena del token en una variable llamada $token
(si estás ejecutando azcopy con PowerShell), puedes copiar fácilmente todos los datos de un contenedor de almacenamiento al otro como se muestra a continuación.
Recordatorio: Echa un vistazo al artículo Cómo Generar un Token SAS de Azure para Acceder a Cuentas de Almacenamiento si no sabes cómo generar un token SAS.

Otras Operaciones Útiles de AzCopy
Además de copiar archivos y carpetas, hay otras operaciones de copia que puedes realizar con AzCopy. Algunas de estas son:
- Copiar archivos específicos (filtrados).
- Copiar un directorio dentro de otro directorio en el contenedor de blobs.
- Copiar desde Amazon AWS a Azure Storage.
Si deseas aprender todo lo que AzCopy puede hacer, consulta el contenido de ayuda ejecutando azcopy -h
. Encontrarás muchos otros comandos útiles además del comando copy
en el que te has enfocado únicamente en este artículo. Puedes ver una captura de pantalla de estos comandos a continuación.

Para obtener más información, visita la página AzCopy Copy. Luego puedes probarlos por tu cuenta utilizando las técnicas que aprendiste en este artículo.
Resumen
En este artículo, aprendiste cómo usar AzCopy para transferir archivos entre el almacenamiento local y el de Azure. También aprendiste cómo realizar estas tareas mientras usas OAuth y Shared Access Signature Token para la autenticación. Has visto qué otros comandos de AzCopy están disponibles y cómo encontrarlos.
I hope this article has helped you get started with AzCopy and sparked your interest in using it more as part of your administration or development tasks. Thank you!