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:

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:

  1. No portal do Azure aceda à sua conta de armazenamento.

  2. 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.

  3. Tome nota do nome da conta de armazenamento que irá precisar para autorização.

  4. Localize o valor chave em key1 e selecione Copiar para copiar a chave da conta.

    Captura de ecrã que mostra como copiar a chave de conta do portal do Azure

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:

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.