Fazendo upload de arquivos para o Windows Azure com PowerShell

Olá pessoal,

Algumas pessoas tem me perguntado que uma vez que as máquinas estão rodando no Windows Azure como enviar arquivos para o seu ambiente. Uma das possibilidade pode ser o uso do Windows Azure Storage em conjunto com o PowerShell. Para seguir os passos abaixo, estou assumindo que vc executou os passos ou leu o post Administrando Windows Azure com PowerShell.

O PowerShell do Windows Azure possui uma série de cmdlets para trabalhar com a estrutura de blob do storage, como por exemplo, comandos para gerenciar containers e comandos para gerenciar conteúdo do blob.

O primeiro passo para enviar arquivos para o storage é criar um container. Passo isso utilize o cmdlet New-AzureStorageContainer, conforme abaixo:

# Criando o container

New-AzureStorageContainer
-Name
nome_do_container

 

Note que o nome precisar ser em letras minúsculas. Para ver todos os containers da sua conta padrão de storage, é só rodar o comando abaixo:

 

# Buscando detalhes do container

Get-AzureStorageContainer

 

Note que o nome precisar ser em letras minúsculas. Para ver todos os containers da sua conta padrão de storage, é só rodar o comando abaixo:

 

# Buscando detalhes do container

Get-AzureStorageContainer

 

Agora, para fazer upload de um arquivo para o blob, utilize o cmdlet Set-AzureStorageBlobContent, informando o nome do blob, o arquivo de origiem, o tipo do blob, que para arquivos simples é Block e finalmente o container, conforme abaixo:

 

# Fazendo upload de um arquivo

Set-AzureStorageBlobContent
-Blob
teste.txt
-File
C:\temp\teste.txt
-BlobType
Block
–Container
nome_do_container

 

Depois de fazer o upload, é possível ver detalhes de todos os arquivos armazenados no container. Para isso, execute a linha abaixo:

 

# Vendo o detalhes do arquivo

Get-AzureStorageBlob
-Container
nome_do_container

 

Além do upload, também é possível fazer download de um arquivo no blob, para isso basta utilizar o cmdlet Get-AzureStorageBlobContent, conforme abaixo:

 

# Fazendo download do arquivo

Get-AzureStorageBlobContent
-Container
nome_do_container -Blob teste.txt
-Destination
C:\temp\teste2.txt

 

Uma outra possibilidade interessante é combinar comandos tradicionais do PowerShell com comandos do Windows Azure. Por exemplo, é possível fazer upload de vários arquivos combinando o cmdlet Get-ChildItem através de piping com o cmdlet Set-AzureStorageBlobContent:

 

# Fazendo upload de todos os arquivos texto de um diretório

Get-ChildItem
C:\Temp\*.txt
|
foreach {

Set-AzureStorageBlobContent
-Blob
$_.Name
-File
$_.FullName -BlobType
Block
-Container
files

}

 

De maneira similar é possível fazer download de todos os blobs de um container:

 

# Fazendo download de todos os blobs de um container

Get-AzureStorageBlob
-Container
files
|
foreach {

$filePath
=
"c:\temp\download\"
+
$_.Name

Get-AzureStorageBlobContent
-Container
files
-Blob
$_.Name -Destination $filePath

}

 

No próximo post pretendo falar como criar máquinas virtuais no Windows Azure através do PowerShell.

 

RG