Início Rápido: Biblioteca de clientes do Armazenamento de Blobs do Azure para Ruby

Saiba como usar o Ruby para criar, baixar e listar os blobs em um contêiner no Armazenamento de Blobs do Microsoft Azure.

Pré-requisitos

Para acessar o Armazenamento do Azure, você precisará de uma assinatura do Azure. Se você ainda não tiver uma assinatura, crie uma conta gratuita antes de começar.

Todo o acesso ao Armazenamento do Azure ocorre por meio de uma conta de armazenamento. Para este Início Rápido, crie uma conta de armazenamento usando o portal do Azure, o Azure PowerShell ou a CLI do Azure. Para obter ajuda sobre como criar uma conta de armazenamento, confira Criar uma conta de armazenamento.

Verifique se você tem os pré-requisitos adicionais a seguir instalados:

Baixar o aplicativo de exemplo

O aplicativo de exemplo usado neste guia de início rápido é um aplicativo Ruby.

Use o Git para baixar uma cópia do aplicativo em 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 até a pasta storage-blobs-ruby-quickstart e abra o arquivo example.rb no editor de código.

Copiar suas credenciais no Portal do Azure

O aplicativo de exemplo precisa autorizar o acesso à sua conta de armazenamento. Forneça suas credenciais de conta de armazenamento ao aplicativo na forma de uma cadeia de conexão. Para verificar as credenciais da conta de armazenamento:

  1. No portal do Azure, acesse sua conta de armazenamento.

  2. Na seção Configurações da visão geral da conta de armazenamento, selecione Chaves de acesso para exibir as chaves de acesso da conta e a cadeia de conexão.

  3. Anote o nome da sua conta de armazenamento, pois você precisará dela para a autorização.

  4. Encontre o valor da Chave em key1 e selecione Copiar para copiar a chave de conta.

    Captura de tela mostrando como copiar sua chave de conta do Portal do Azure

Configurar a cadeia de conexão de armazenamento

Informe o nome de sua conta de armazenamento e a chave de conta para criar uma instância de BlobService para seu aplicativo.

O código a seguir no arquivo example.rb cria uma instância de um novo objeto BlobService. Substitua os valores accountname e accountkey pelo nome e chave da conta.

# 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
)

Execute o exemplo

O exemplo cria um contêiner no Armazenamento de Blobs, cria um blob no contêiner, lista os blobs no contêiner e baixa o blob em um arquivo local.

Execute o exemplo. Veja um exemplo da saída da execução do aplicativo:

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 você pressiona Enter para continuar, o programa de exemplo exclui o contêiner de armazenamento e o arquivo local. Antes de continuar, verifique se o arquivo baixado está na pasta Documentos.

Você também pode usar o Gerenciador de Armazenamento do Azure para ver os arquivos na conta de armazenamento. O Gerenciador de Armazenamento do Azure é uma ferramenta gratuita de multiplataforma que permite que você acesse as informações da sua conta de armazenamento.

Depois de verificar os arquivos, pressione a tecla Enter para excluir os arquivos de teste e encerrar a demonstração. Abra o arquivo example.rb para examinar o código.

Entender o código de exemplo

Em seguida, vamos percorrer o código de exemplo para que você entenda como ele funciona.

Obter referências a objetos de armazenamento

A primeira coisa a fazer é criar instâncias dos objetos usados para acessar e gerenciar o Armazenamento de Blobs. Esses objetos dependem uns dos outros. Cada um é usado pelo próximo na lista.

  • Crie uma instância do objeto do BlobService do Armazenamento do Azure para configurar as credenciais de conexão.
  • Crie o objeto Contêiner, que representa o contêiner que você está acessando. Os contêineres são usados para organizar seus blobs da mesma forma que você usa pastas no seu computador para organizar seus arquivos.

Quando tiver o objeto de contêiner, você poderá criar um objeto de blob Bloco que aponta para um blob específico no qual tem interesse. Use o objeto de Bloco para criar, baixar e copiar blobs.

Importante

Os nomes de contêiner devem estar em minúsculas. Para obter mais informações sobre nomes de contêiner e de blobs, consulte Nomeando e referenciando contêineres, blobs e metadados.

O seguinte código de exemplo:

  • Cria um contêiner
  • Define permissões no contêiner para que os blobs sejam públicos. O contêiner é chamado de quickstartblobs, com uma ID exclusiva acrescentada.
# 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 contêiner

O Armazenamento de Blobs dá suporte a blobs de blocos, blobs de acréscimos e blobs de páginas. Para criar um blob, chame o método create_block_blob passando os dados para o blob.

O exemplo a seguir cria um blob chamado QuickStart_ com uma ID exclusiva e uma extensão de arquivo .txt no contêiner 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 até 4,7 TB e podem ser desde planilhas até arquivos de vídeo grandes. Os blobs de páginas são usados principalmente para os arquivos VHD que auxiliam as máquinas virtuais de IaaS. Os blobs de acréscimos costumam ser usados para registro em log, como quando você quer gravar em um arquivo e continuar adicionando mais informações.

Listar os blobs em um contêiner

Obter uma lista de arquivos no contêiner usando o método list_blobs. O código a seguir recupera a lista de blobs e exibe seus 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

Baixar um blob

Baixe os blobs para o disco local usando o método get_blob. O código a seguir baixa o blob criado em uma seçã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 recursos

Se um blob deixar de ser necessário, use delete_blob para removê-lo. Exclua um contêiner inteiro usando o método delete_container. Excluir um contêiner também exclui todos os blobs armazenados nele.

# Clean up resources, including the container and the downloaded file
blob_client.delete_container(container_name)
File.delete(full_path_to_file)

Recursos para desenvolvimento de aplicativos Ruby com blobs

Confira estes recursos adicionais para desenvolvimento com Ruby:

Próximas etapas

Neste início rápido, você aprendeu a transferir arquivos entre o Armazenamento de Blobs do Azure e um disco local usando o Ruby. Para saber mais sobre como trabalhar com o Armazenamento de Blobs, prossiga para a visão geral sobre a conta de armazenamento.

Para saber mais sobre o Gerenciador de Armazenamento e os Blobs, confira Gerenciar recursos do Armazenamento de Blobs do Azure com o Gerenciador de Armazenamento.