Entendendo o cenário

Há algum tempo venho trabalhando em um projeto que está hospedado no Windows Azure e que possui uma grande quantidade de conteúdo estático (vídeos, slides, etc).

No início do projeto, quando esse conteúdo era bem menor, eu não dei muita importância e optei por fazer o deployment deste conteúdo junto com a aplicação web. O tempo do deployment aumentava um pouco, porém era algo suportável. Algo em torno de 30 minutos para o upload e implantação do pacote.

O problema foi quando esse conteúdo começou a crescer absurdamente e o tempo de deployment da aplicação pulou de 30 minutos para mais de 5 horas. Nem preciso falar que é um tempo inaceitável e que fui praticamente obrigado a migrar todo esse conteúdo para BLOB.

Porém, trabalhar com BLOB não é uma das tarefas mais divertidas de se fazer com Azure. Se você ainda não teve essa oportunidade, vale a pena dar uma olhada no código necessário para amazenar um simples arquivo no storage do Windows Azure.

Azure Storage Explorer

Para a felicidade de muitos, temos uma aplicação bastante conhecida chamada de Azure Storage Explorer que funciona como um Windows Explorer para Azure. É uma ferramenta bastante poderosa que nos permite manipular Tabelas, Mensagens, Contêineres e BLOBs de uma forma bastante simples.

Apesar de bastante poderosa, ela não era muito útil pra mim, afinal eu precisava de duas features que ela não suportava:

  1. Upload de pasta com recursividade;
  2. Gravação dos arquivos com nomes que possam ser acessados como se estivessem em uma estrutura de pastas. Algo como “Minha Pasta Falsa/Minha Sub Pasta Falsa/Meu Arquivo” e com isso eu poderia acessar o seu conteúdo atráves de uma URL como http://<nome>.blob.core.windows.net/<conteiner>/Minha Pasta Falsa/Minha Sub Pasta Falsa/Meu Arquivo.

Contribuição

Como vocês já devem ter percebido. Ela não suportava, mas agora suporta.

Como o Azure Storage Explorer é uma ferramenta open source, pude baixar o código, implementar os recursos que eu precisava e submeti o patch para o owner do projeto. Enquanto, o patch está em avaliação para ser incorporado ao projeto final, você pode baixar a versão modificada no seguinte endereço http://azurestorageexplorer.codeplex.com/SourceControl/list/patches (Patch ID 11226).

Abaixo, vocês podem ver alguns screenshots das modificações e espero que essas mudanças sejam tão úteis para vocês como foram para mim.

Azure Storage Explorer 1
Imagem 1: Selecionando uma pasta para upload

Azure Storage Explorer 2
Imagem 2: Pasta enviada e arquivos com o seu path no nome

Um abraço e até a próxima!
André Dias