Migrando arquivos do AWS S3 para os Blobs do Azure

Olá pessoal,

Recentemente tenho trabalhado com alguns clientes na migração de aplicações da Amazon para o Azure, principalmente de arquivos armazenados no S3 para os Blobs do Azure.

Em relação à essa migração, do lado do Azure, uma técnica que pode ser utilizada é o uso da API de cópia assíncrona de Blobs, no .NET o método StartCopyFromBlob. Este método permite a cópia do lado do servidor entre Blobs diferentes. Por Blobs diferentes significa que eles podem estar em containers, contas de storage ou até mesmo assinaturas de Azure diferentes. Além disso, esse método também possui uma sobrecarga que recebe uma url pública, permitindo a cópia assíncrona do lado do servidor de arquivos externos ao Azure acessíveis pela internet.

Em linhas gerais, um programa para fazer a migração desses arquivos deve realizar os seguintes passos:

  1. Listar os arquivos de um bucket do S3
  2. Para cada arquivo, gerar uma url pública de acesso
  3. Para cada arquivo, realizar a cópia para o Azure utilizando o método StartCopyFromBlob
  4. Monitorar o status da cópia do lado do Azure

Para facilitar o trabalho, criei um projeto no CodePlex chamado AWS S3 To Azure Blob. Esta é uma aplicação de linha de comando que realizar os passos acima. O projeto foi publicado como Git, fique à vontade para colaborar.

Abs.,

RG