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