Início Rápido: Armazenamento de Blobs do Azure biblioteca de cliente para Ruby
Saiba como utilizar o Ruby para criar, transferir e listar blobs num contentor no Microsoft Armazenamento de Blobs do Azure.
Pré-requisitos
Para aceder ao Armazenamento do Azure, precisará de uma subscrição do Azure. Se ainda não tiver uma subscrição, crie uma conta gratuita antes de começar.
Todo o acesso ao Armazenamento do Azure ocorre através de uma conta de armazenamento. Neste início rápido, crie uma conta de armazenamento com o portal do Azure, Azure PowerShell ou a CLI do Azure. Para obter ajuda para criar uma conta de armazenamento, veja Criar uma conta de armazenamento.
Certifique-se de que tem os seguintes pré-requisitos adicionais instalados:
Biblioteca de cliente do Armazenamento do Azure para Ruby com o pacote RubyGem:
gem install azure-storage-blob
Transferir a aplicação de exemplo
A aplicação de exemplo utilizada neste início rápido é uma aplicação de Ruby básica.
Utilize o Git para transferir uma cópia da aplicação para o seu ambiente de desenvolvimento. Este comando clona o repositório para o computador local:
git clone https://github.com/Azure-Samples/storage-blobs-ruby-quickstart.git
Navegue para a pasta storage-blobs-ruby-quickstart e abra o ficheiro example.rb no seu editor de código.
Copiar as credenciais do Portal do Azure
A aplicação de exemplo tem de autorizar o acesso à sua conta de armazenamento. Forneça as credenciais da conta de armazenamento à aplicação sob a forma de uma cadeia de ligação. Para ver as credenciais da conta de armazenamento:
No portal do Azure aceda à sua conta de armazenamento.
Na secção Definições da descrição geral da conta de armazenamento, selecione Chaves de acesso para apresentar as chaves de acesso da conta e a cadeia de ligação.
Tome nota do nome da conta de armazenamento que irá precisar para autorização.
Localize o valor chave em key1 e selecione Copiar para copiar a chave da conta.
Configurar a cadeia de ligação de armazenamento
Indique o nome da conta de armazenamento e a chave da conta para criar uma instância blobService para a sua aplicação.
O código seguinte no ficheiro example.rb instancia um novo objeto BlobService . Substitua os valores accountname e accountkey pelo nome da conta e a chave.
# Create a BlobService object
account_name = "accountname"
account_key = "accountkey"
blob_client = Azure::Storage::Blob::BlobService.create(
storage_account_name: account_name,
storage_access_key: account_key
)
Executar o exemplo
O exemplo cria um contentor no Armazenamento de Blobs, cria um novo blob no contentor, lista os blobs no contentor e transfere o blob para um ficheiro local.
Execute o exemplo. Eis um exemplo do resultado da execução da aplicação:
C:\azure-samples\storage-blobs-ruby-quickstart> ruby example.rb
Creating a container: quickstartblobs18cd9ec0-f4ac-4688-a979-75c31a70503e
Creating blob: QuickStart_6f8f29a8-879a-41fb-9db2-0b8595180728.txt
List blobs in the container following continuation token
Blob name: QuickStart_6f8f29a8-879a-41fb-9db2-0b8595180728.txt
Downloading blob to C:/Users/azureuser/Documents/QuickStart_6f8f29a8-879a-41fb-9db2-0b8595180728.txt
Paused, press the Enter key to delete resources created by the sample and exit the application
Quando prime Enter para continuar, o programa de exemplo elimina o contentor de armazenamento e o ficheiro local. Antes de continuar, verifique a pasta Documentos do ficheiro transferido.
Também pode utilizar Explorador de Armazenamento do Azure para ver os ficheiros na sua conta de armazenamento. O Explorador de Armazenamento do Azure é uma ferramenta multiplataformas gratuita que lhe permite aceder às informações da sua conta de armazenamento.
Depois de verificar os ficheiros, prima a tecla Enter para eliminar os ficheiros de teste e terminar a demonstração. Abra o ficheiro example.rb para ver o código.
Compreender o código de exemplo
Em seguida, vamos percorrer o código de exemplo para que possa compreender como funciona.
Obter referências para os objetos de armazenamento
A primeira coisa a fazer é criar instâncias dos objetos utilizados para aceder e gerir o Armazenamento de Blobs. Estes objetos dependem uns dos outros. Cada objeto é utilizado pelo objeto seguinte na lista.
- Crie uma instância do objeto do armazenamento do Azure BlobService para configurar as credenciais de ligação.
- Crie o objeto Contentor , que representa o contentor a que está a aceder. Os contentores são utilizados para organizar os blobs, da mesma forma como utiliza pastas para organizar os ficheiros.
Assim que tiver o objeto de contentor, pode criar um objeto Blob de blocos que aponte para um blob específico no qual esteja interessado. Utilize o objeto Bloquear para criar, transferir e copiar blobs.
Importante
Os nomes dos contentores têm de estar em minúscula. Para obter mais informações sobre nomes de contentores e blobs, veja Naming and Referencing Containers, Blobs, and Metadata (Nomenclatura e Referência de Contentores, Blobs e Metadados).
O seguinte código de exemplo:
- Cria um novo contentor
- Define permissões no contentor para que os blobs sejam públicos. O contentor é denominado quickstartblobs com um ID exclusivo anexado.
# Create a container
container_name = "quickstartblobs" + SecureRandom.uuid
puts "\nCreating a container: " + container_name
container = blob_client.create_container(container_name)
# Set the permission so the blobs are public
blob_client.set_container_acl(container_name, "container")
Criar um blob no contentor
O Armazenamento de Blobs suporta blobs de blocos, blobs de acréscimo e blobs de páginas. Para criar um blob, chame o método create_block_blob ao transmitir os dados do blob.
O exemplo seguinte cria um blob chamado QuickStart_ com um ID exclusivo e uma extensão de ficheiro .txt no contentor criado anteriormente.
# Create a new block blob containing 'Hello, World!'
blob_name = "QuickStart_" + SecureRandom.uuid + ".txt"
blob_data = "Hello, World!"
puts "\nCreating blob: " + blob_name
blob_client.create_block_blob(container.name, blob_name, blob_data)
Os blobs de blocos podem ter um tamanho tão grande como 4,7 TB e podem ser qualquer coisa, desde folhas de cálculo a ficheiros de vídeo grandes. Os blobs de páginas são utilizados principalmente para os ficheiros VHD que suportam máquinas virtuais IaaS. Os blobs de acréscimo são normalmente utilizados para o registo, como quando pretende escrever num ficheiro e, em seguida, continua a adicionar mais informações.
Listar os blobs num contentor
Obtenha uma lista de ficheiros no contentor com o método list_blobs. O código seguinte obtém a lista de blobs e, em seguida, apresenta os respetivos nomes.
# List the blobs in the container
puts "\nList blobs in the container following continuation token"
nextMarker = nil
loop do
blobs = blob_client.list_blobs(container_name, { marker: nextMarker })
blobs.each do |blob|
puts "\tBlob name: #{blob.name}"
end
nextMarker = blobs.continuation_token
break unless nextMarker && !nextMarker.empty?
end
Transferir um blob
Transfira um blob para o disco local com o método get_blob . O código seguinte transfere o blob criado numa secção anterior.
# Download the blob
# Set the path to the local folder for downloading
if(is_windows)
local_path = File.expand_path("~/Documents")
else
local_path = File.expand_path("~/")
end
# Create the full path to the downloaded file
full_path_to_file = File.join(local_path, blob_name)
puts "\nDownloading blob to " + full_path_to_file
blob, content = blob_client.get_blob(container_name, blob_name)
File.open(full_path_to_file,"wb") {|f| f.write(content)}
Limpar os recursos
Se um blob já não for necessário, utilize delete_blob para removê-lo. Elimine um contentor inteiro com o método delete_container . Eliminar um contentor também elimina todos os blobs armazenados no contentor.
# Clean up resources, including the container and the downloaded file
blob_client.delete_container(container_name)
File.delete(full_path_to_file)
Recursos para desenvolver aplicações Ruby com blobs
Veja estes recursos adicionais para o desenvolvimento do Ruby:
- Veja e transfira o código fonte da biblioteca de cliente Ruby para o Armazenamento do Azure no GitHub.
- Explore exemplos do Azure escritos com a biblioteca de cliente Ruby.
- Exemplo: Introdução com o Armazenamento do Azure no Ruby
Passos seguintes
Neste início rápido, aprendeu a transferir ficheiros entre Armazenamento de Blobs do Azure e um disco local com Ruby. Para saber mais sobre como trabalhar com o Armazenamento de Blobs, avance para a Descrição geral da conta de Armazenamento.
Para obter mais informações sobre os Explorador de Armazenamento e Blobs, veja Gerir recursos de Armazenamento de Blobs do Azure com Explorador de Armazenamento.