[Azure Storage] ¿Cómo migrar mis blobs programaticamente?

Antes de empezar, a los que no conocen el Azure Storage Service les recomiendo visitar el siguiente enlace http://azure.microsoft.com/en-us/services/storage/
Ahora, el hecho de Exportar e Importar los datos de una cuenta de almacenamiento de Azure ya es posible usando el Azure Management Portal.

Con el detalle de que tenemos que descargar el Drive Preparation Tool, luego enviar nuestros Hard Drives hacia la región en donde se encuentra registrada nuestra cuenta de almacenamiento y detallar nuestra información de contacto. Probablemente todo esto no sea necesario si es que aun no manejamos Teras de información y para ello es este post.

Así que imaginemos la situación en que no solo queremos descargar “todos” nuestros blobs(obviamente lo puedes filtrar programáticamente alterando el código que se compartirá luego), sino que queremos pasarlos hacia otra cuenta de almacenamiento. Para ello empecemos creando una nueva cuenta de almacenamiento.

Luego creamos un proyecto de Consola en Visual Studio y agregamos las referencias a Windows Azure Storage usando NuGet.

Ahora en nuestro Main agregamos las referencias a los siguientes espacios de nombres y creamos las instancias del CloudStorageClient para las cuentas de almacenamiento de origen y destino usando el nombre y llave que obtuvimos en Manage Access Keys según corresponda:

Y finalmente este es el código que pasará los datos de un lado a otro (recomiendo completar con sus respectivos try catch):

Public Blobs

Private Blobs

Este ejemplo ha sido ejecutado usando Blobs, pero la misma lógica se puede aplicar para los Tables y los Queues.

CodePlex

Código fuente disponible en: Microsoft Azure -> BlobsMigration

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *