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

André Dias

André Dias é sócio-fundador da Lambda3, Visual Studio ALM Ranger & MVP e Professional Scrum Developer Trainer pela Scrum.Org. É graduado em Ciência da Computação pela Unip, atua na área de desenvolvimento de softwares a mais de 13 anos e nos últimos anos tem se dedicado as práticas de ALM (Application Lifecycle Management) e de Agilidade. Foi consultor de ALM da Microsoft Brasil, morou na Irlanda onde trabalhou em projetos para o governo Irlandês. No Brasil atuou em dezenas de projetos, muitos deles para o governo e para grandes instituições financeiras. Tem participação ativa na comunidade através da realização de palestras, organização de eventos, seu blog e seu twitter em @AndreDiasBR