Una vez que estamos conviviendo con el mundo cloud, es posible que necesitemos realizar algunas operaciones con las cuentas de Microsoft Azure Storage. Puede ocurrir que necesitemos mover o copiar blobs de un contenedor a otro, a una cuenta diferente e incluso a un datacenter distinto.
Una herramienta que no debemos perder de vista es AzCopy, la cual nos permite llevar a cabo estas tareas de una forma sencilla, e incluso automatizable. En este post voy a mostrar diferentes escenarios con los que nos podemos encontrar.
Antes de comenzar a utilizar la herramienta es importante conocer su ubicación: C:Program Files (x86)Microsoft SDKsWindows AzureAzCopy. En mi caso, he añadido la misma junto con el resto de paths en las variables del sistema, para que sea más cómodo su uso.
Descargar los elementos de un contenedor en local
AzCopy https://html5stuff.blob.core.windows.net/videos C:html5stuff-videos /sourceKey:storage_key /S
El comando anterior utiliza el siguiente patrón: AzCopy origen destino /sourceKey:origen_storage_key /S. Es importante saber que el directorio debe de existir, ya que la herramienta no lo creará por nosotros. El parámetro S nos indica que queremos utilizar el modo recursivo, en el caso de exitir directorios virtuales. En el ejemplo mostrado, el resultado sería el siguiente:
Copiar los elementos a otro contenedor
AzCopy https://html5stuff.blob.core.windows.net/videos https://html5stuff.blob.core.windows.net/videoshtml5 /sourceKey:html5stuff_storage_key /destKey:html5stuff_storage_key /S
Como podemos ver en la imagen anterior, la copia respeta los directorios virtuales y los nombres de los blobs. Si bien la cuenta de origen y de destino son las mismas, es necesario indicar la clave de la cuenta tanto en sourcekey como en destkey.
Copiar los elementos a otra cuenta de storage
AzCopy https://html5stuff.blob.core.windows.net/videos https://azcopygiswe.blob.core.windows.net/videos /sourceKey:html5stuff_storage_key /destKey:azcopygiswe_storage_key /S
Mover un contenedor de una cuenta de Storage a otro datacenter
AzCopy https://azcopygiswe.blob.core.windows.net/videos https://azcopygisne.blob.core.windows.net/videos /sourceKey:azcopygiswe_storage_key /destKey:azcopygisne_storage_key /S /MOV
La forma de operar con cuentas que no se encuentran en la misma ubicación geográfica es exactamente la misma que en los escenarios anteriores. En este ejemplo se ha utilizado el parámetro /MOV, que se utiliza para indicar que los elementos del origen han de ser eliminados una vez que han sido copiados en destino.
Utilizando un archivo externo
Otra opción interesante es la de utilizar un archivo de texto para indicar el origen y el destino
#Source container https://html5stuff.blob.core.windows.net/videos/ #Destination container https://azcopygiswe.blob.core.windows.net/videos/ #source key /sourceKey:html5stuff_source_key #destination key /destKey:azcopygiswe_source_key #optional parameters /S
AzCopy /@:H:AzCopy.txt
Modo resumen
A través del comando /Z: podemos establecer el modo resumen, en el caso de que la operación se pueda ver interrumpida.
AzCopy /@:H:AzCopy.txt /Z:H:myjournalfile.log
Una vez que haya finalizado, el archivo de log se eliminará de manera automática.
Espero que sea de utilidad.
¡Saludos!