Sincronizar una carpeta local con un contenedor de una cuenta de almacenamiento

Sitio dedicado a Microsoft Azure y otras tecnologías Cloud

Que OneDrive es una excelente herramienta para tener sincronizados nuestros datos en local con un único repositorio en la nube, no es secreto para nadie a estas alturas. Pero llega un momento en el que me veo superando el Tb. que tengo de almacenamiento, y empiezo a buscar soluciones que no me cuesten más dinero.

Así llego a las Cuentas de almacenamiento de Azure, y al uso de la herramienta de línea de comando azcopy.

Una línea para sincronizarlos a todos

Obviamente primero tengo que crear una cuenta de almacenamiento, y dentro de ella un contenedor de bloques con un tier de acceso del tipo Cool o esporádico.

Lo siguiente es obtener una SAS de acceso al contenedor, con permisos de Lectura, Escritura, Creación, Añadir, Borrar y Listado; debo tener cuidado con el tiempo de vida del token, que tiene que ser lo suficientemente largo para que sea cómodo; y no me olvido el limitarlo solo a conexiones https.

Para hacerlo aún mejor, debería utilizar una Política de acceso. Pero eso sería complicar esta pequeña introducción.

No me debo olvidar de guardar el valor del campo autogenerado de «Blob SAS URL«.

Ahora toca descargar en local el ejecutable de la herramienta azcopy para mi sistema operativo.

Debo extraer el ejecutable en la ruta desde donde quiero lanzar el azcopy, o añadir esta ruta a la variable de sistema %PATH

Por último, lanzo la orden de sincronización desde una consola en la carpeta en donde está el ejecutable de azcopy, con «.\azcopy.exe» si fuese necesario.

azcopy sync "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]"

Lo que, utilizando valores más reales, sería algo como así:

.\azcopy.exe sync "G:\Carpeta_de_Videos" "https://contenedordevideos.blob.core.windows.net/contenedor?sv=2020-10-02&st=2022-01-28T22%3A02%3A53Z&se=2022-12-31T22%3A02%3A00Z&sr=c&sp=racwdxlt&sig=aqui_va_un_token_largo_com_un_dia_sin_pan" --cap-mbps 50

Lo bueno de haberme copiado la SAS del contenedor, es que lo pego como destino de la sincronización y esta incluye el path y el token de seguridad para conectarse y realizar las operaciones. También debo tener cuidado con el ancho de banda, que se come todo el que haya disponible, por lo que limito la transferencia a un máximo de 50Mb/seg. con la opción –cap-mbps

Al lanzar el comando, azcopy me escanea la carpeta de origen y el contenedor de destino, compara la hora de la última modificación, y transfiere todo lo que exista o se haya modificado en local y que no exista en destino.

Cuando acaba, muestra un informe de todo lo que ha sincronizado.

Si quisiera sincronizar al revés, desde la Storage a local, solo tengo que cambiar el orden del origen y del destino. Y para una información aún más detallada de las posibilidades, tengo la documentación de azcopy sync.

Espero que sea de utilidad.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.