Transferir archivos con AzCopy: Token OAuth y SAS

La automatización está presente en todas partes hoy en día en el campo de la tecnología de la información. Desde la aprovisionamiento de máquinas virtuales hasta la implementación de sitios web, la automatización es clave, especialmente cuando se necesita lidiar con múltiples elementos. Incluso la gestión de archivos entre el almacenamiento de Azure y su máquina local puede automatizarse 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 vamos a centrar en:

¡Comencemos!

Si prefieres aprender a través de videos, también puedes ver un video de TechSnips relacionado de cerca con lo que aprenderás en este artículo.

Requisitos previos

Este artículo será un tutorial paso a paso que demostrará varias tareas. Si quieres seguirlo, asegúrate de cumplir con los siguientes requisitos antes de comenzar.

Creación de nuevos contenedores de almacenamiento

En primer lugar, use AzCopy para crear nuevos contenedores de almacenamiento en una cuenta de almacenamiento existente. En el ejemplo que utilizará, creará dos nuevos contenedores llamados contenedor1 y contenedor2.

Nota: Antes de crear un nuevo contenedor, debe conocer la URL de extremo del contenedor. La URL de extremo sigue el formato: https://[nombre_cuenta_almacenamiento].blob.core.windows.net/[nombre_contenedor].

En primer lugar, defina la URL de extremo. En este ejemplo, los contenedores se crearán en una cuenta de almacenamiento llamada cuentaalmacenamiento1207 creando dos URL de extremo:

Ahora que conoce las URL de extremo, use el comando azcopy make pasando cada URL de extremo como parámetro como se muestra a continuación.

> azcopy make https://storageaccount1207.blob.core.windows.net/container1
> azcopy make https://storageaccount1207.blob.core.windows.net/container2
Creating new containers in the storageaccount1207 storage account

Copiar archivos hacia/desde contenedores de Azure

Una vez que haya creado un contenedor de almacenamiento, probablemente se esté preguntando “¿Cómo puedo subir a Azure Blob Storage?”. Puede hacerlo con AzCopy utilizando el comando azcopy copy. Puede usar AzCopy para copiar PST, VHD y más.

Uso de la autenticación OAuth

Al usar AzCopy para copiar archivos a blobs, tienes varias opciones para la autenticación. Dado que se supone 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 OAuth.

> azcopy copy c:\myDir\file1.txt https://storageaccount1207.blob.core.windows.net/container1
Upload file to Azure Storage using OAuth

¿Cómo sabes si el archivo se ha copiado en el 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.

> azcopy list https://storageaccount1207.blob.core.windows.net/container1
List the contents of the Azure blob container

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

> azcopy copy https://storageaccount1207.blob.core.windows.net/container1/file1.txt>c:\myDir
Download file from Azure Storage using OAuth authentication

Uso de 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 las cuentas de almacenamiento.

Una vez que tienes 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.

> azcopy copy c:\myDir\file1.txt 'https://storageaccount1207.blob.core.windows.net/container1?sv=2019-02-02&sr=c&sig=LgFsqIRHZovsSjpAVNAyyyy4tnDJ%2BxNh%2B1Cq3rY4Gbk%3D&se=2019-12-09T06%3A34%3A30Z&sp=rw'

Si estás utilizando PowerShell y has almacenado 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.

> azcopy copy c:\myDir\file1.txt "https://storageaccount1207.blob.core.windows.net/container1?$token"
Copy file to Azure Container using SAS Token Authentication

Utilizando el mismo token (asumiendo que aún está dentro de su período de validez), también puedes descargar archivos del almacenamiento de Azure al almacenamiento local. El ejemplo a continuación copia el archivo file1.txt del almacenamiento de Azure utilizando 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 utilizando la autenticación SAS.

> azcopy copy ('https://storageaccount1207.blob.core.windows.net/container1/file1.txt'+$token) C:\MyDir\
Copy file from Azure Container with SAS Token

Copiando un directorio hacia/desde el almacenamiento de Azure

Si tienes muchos archivos para transferir o descargar desde Azure, también puedes copiar directorios completos de una vez utilizando 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 el directorio 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 los subdirectorios que puedan existir.

> azcopy copy C:\MyDir\ https://storageaccount1207.blob.core.windows.net/container1/ --recursive

A continuación, puedes ver que los diez archivos dentro de la carpeta C:\MyDir se copiaron correctamente según el resumen del trabajo.

Copying a directory and its contents

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 hacia/desde tu entorno local, sino que también puedes copiar blobs entre contenedores de almacenamiento.

En lugar de utilizar una ruta de archivo local, cambiarías los parámetros para utilizar una URL de contenedor de blob como origen y otra URL de contenedor de blob como destino.

Ya has creado dos contenedores de almacenamiento llamados container1 y container2. En esta sección, vamos a copiar archivos, directorios e incluso todo el contenedor de blobs de container1 a container2.

Para copiar archivos de un contenedor a otro, primero generamos un nuevo token SAS. Dado que los dos contenedores pertenecen a la misma cuenta de almacenamiento, se puede utilizar el mismo token tanto para el origen como para el destino.

Suponiendo que has 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 a 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.

> azcopy copy ('https://storageaccount1207.blob.core.windows.net/container1'+$token) ('https://storageaccount1207.blob.core.windows.net/container2'+$token) --recursive
Copying data between containers using SAS Token authentication

Otras operaciones útiles de AzCopy

Además de copiar archivos y carpetas, hay otras operaciones de copia que puedes realizar con AzCopy. Algunas de ellas 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 desea aprender sobre todo lo que AzCopy puede hacer, consulte el contenido de ayuda ejecutando azcopy -h. Encontrará muchos otros comandos útiles además del comando copy en el que se ha centrado exclusivamente en este artículo. Puede ver una captura de pantalla de estos comandos a continuación.

List of AzCopy Commands

Para obtener más información, visite la página AzCopy Copy. Luego puede probar estos por su cuenta utilizando las técnicas que aprendió en este artículo.

Resumen

En este artículo, aprendió cómo usar AzCopy para transferir archivos entre el almacenamiento local y Azure. También aprendió cómo realizar estas tareas utilizando OAuth y Token de firma de acceso compartido para la autenticación. Ha 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!

Source:
https://adamtheautomator.com/azcopy/