.NET azure Blob Cloud Cloud Mac OS Terminal
Como todos sabem eu mantenho um podcast e recentemente, após algumas várias semanas sem gravar resolvi que era momento de retomar as falas. Com isso voltei a me perguntar sobre como automatizar mais o processo entre gravar, colocar a vinheta, gerar o post no site do podcast e disponibilizar aos ouvintes a boa nova. Neste insight me deparei com a mesma pergunta que outrora já havia me feito sobre qual a real necessidade de manter a minha assinatura do SoundCloud, pois tenho um site e um feed próprio!
Não tenho de maneira alguma a pretenção de fazer um trabalho melhor que o SoundCloud, mas, para minha necessidade ele está servindo somente como repositório de arquivos MP3. Se o negócio é só esse, por que não usar o blob storage do Windows Azure?
Então, depois de relutar por vários meses em manter o serviço, resolvi mudar, graças a isso, aproveitei também para retomar as escritas no Blog. (em breve colocarei todos os rascunhos no ar, preciso somente dar uma lida pois tem texto de mais de um ano).
Vamos ao que interessa! Para guardar arquivos no Storage do Azure e acessar/controlar via MAC OSX.
Passo 1 - Instalar o CLI no MAC (pode ser usado no Windows e no Linux também)
Primeiro verifique se o Node.js está instalado, se quiser usar um terminal basta digitar npm -v e ver o que acontece, se vier uma versão você tem senão você tem que fazer o download e instalar.
Após a instalação sabemos Node.js e podemos prosseguir.
Com isso partimos para instalação do Azure Command-Line Interface (Azure CLI) que vai nos dar o poder via shell de manipular sites, serviços, vms e o Storage que é nosso foco hoje. Claro que tem muito mais coisa além disso, mas vamos focar no que nos propomos.
Não se esqueça de elevar o comando para ser executado como administrador da máquina.
E agora temos Azure CLI no MAC OSX! Então vamos ao que interessa.
Digite azure no seu terminal e bem vindo ao mundo!
Agora para saber de todos os comandos você pode usar azure + comando e receberá uma ajuda específica.
Passo 2 - Conectar no Azure pela linha de comando
Para acessar sua conta você precisa do arquivo de publicação, para isso vamos ao invés de baixar do portal já usar o terminal e pegar o arquivo.
Uma janela de navegador se abrirá e após você estar logado o arquivo é baixado para sua máquina.
Com isso, temos o arquivo de publicação e vamos ter que importar ele para que possamos usar a conta.
azure account import /Caminho…
Agora vamos colocar arquivos.
Para partirmos para os arquivos, temos que entender que no Storage do Azure não temos diretórios, para separar arquivos em grupos usaremos os containers. O que precisamos então é de uma conta de armazenamento, containers e arquivos. Lembrando que você vai acessar suas imagens por uma URI, que deverá ser mais ou menos desta forma:
"https://ContaArmazenamento.blob.core.windows.net/Container/(blob)Arquivo.extensão"
Aproveito para lembrar que é possível criar um apontamento personalizado do seu domínio para este "link" de acesso.
Vamos então criar a nossa conta teste de armazenamento via comando.
A solicitação do tipo da conta se refere a redundância e é dada por Locally redundant storage, Zone-redundant storage, Geo-redundant storage, Read-access geo-redundant storage o PLRS se refere a contas Premium para máquinas virtuais onde se precisa de alto desempenho e baixa latência.
Agora temos conta de armazenamento, vamos então criar um container e mandar arquivos.
Para qualquer operação em uma conta, precisamos da chave de acesso, para isso vamos listar as chaves de acesso
se suas chaves estão suscetíveis a vazamento ou tiverem por algum motivo que serem substituídas, utilize o comando keys renew para isso.
Para facilitar nossos comandos, vamos definir uma conta e sua chave para não termos que digitar sempre, para isso vamos salvar nessa sessão com uso do export, e as chaves de conta e chave.
export AZURE_STORAGE_ACCOUNT=jorgemaiateste export AZURE_STORAGE_ACCESS_KEY=CHAVE
Para enviar arquivos precisamos de um container, para isso vamos criar um.
Para Listar os containers usamos
veja que o container não tem acesso público, o que não interessa nesse caso. Existem 3 níveis, o Off que é privado para tudo, o Blob que é publico para leitura do blob, mas não vê a listagem do container, nem os metadados e o Container que vê e lista tudo. Então vamos definir o container como Container, pois os metadados nos interessam.
azure storage container set arquivos -p Container
Por fim, vamos subir um arquivo e acessar pelo navegador.
no meu caso aqui, o arquivo é uma logo minha que se chama jorge.png e está no diretório em que estou executando o comando.
azure storage blob upload 'jorge.png' arquivos
Para mais informações sobre os comandos use o Help do próprio CLI, digitando azure e o comando que quer saber.
Sempre bom usar definições sólidas, por isso recomendo uma lida no artigo de conceitos do MSDN sobre Naming and Referencing Containers, Blobs, and Metadata.