Avvio rapido: Libreria client di Archiviazione BLOB di Azure per Ruby

Questo argomento di avvio rapido illustra come usare Ruby per creare, scaricare ed elencare BLOB in un contenitore di Archiviazione BLOB di Microsoft Azure.

Prerequisites

Per accedere ad Archiviazione di Azure è necessaria una sottoscrizione di Azure. Se non si ha già una sottoscrizione, creare un account gratuito prima di iniziare.

L'accesso ad Archiviazione di Azure viene eseguito esclusivamente tramite un account di archiviazione. Per questa guida introduttiva, creare rapidamente un account di archiviazione usando il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure. Per informazioni sulla creazione di un account di archiviazione, vedere Creare un account di archiviazione.

Verificare che siano installati i prerequisiti aggiuntivi seguenti:

Scaricare l'applicazione di esempio

L'applicazione di esempio usata in questa guida rapida è un'applicazione Ruby di base.

Usare Git per scaricare una copia dell'applicazione nell'ambiente di sviluppo. Questo comando clona il repository nel computer locale:

git clone https://github.com/Azure-Samples/storage-blobs-ruby-quickstart.git

Passare alla cartella storage-blobs-ruby-quickstart e aprire il file example.rb nell'editor di codice.

Copiare le credenziali dal portale di Azure

L'applicazione di esempio deve autorizzare l'accesso all'account di archiviazione. Fornire all'applicazione le credenziali dell'account di archiviazione sotto forma di stringa di connessione. Per visualizzare le credenziali dell'account di archiviazione:

  1. Nel portale di Azure passare all'account di archiviazione.

  2. Nella sezione Impostazioni della panoramica dell'account di archiviazione selezionare Chiavi di accesso per visualizzare le chiavi di accesso e la stringa di connessione dell'account.

  3. Prendere nota del nome dell'account di archiviazione, che sarà necessario per l'autorizzazione.

  4. Trovare il valore Chiave in key1 e selezionare Copia per copiare la chiave dell'account.

    Screenshot che mostra come copiare la chiave dell'account dal portale di Azure

Configurare la stringa di connessione di archiviazione

Specificare il nome dell'account di archiviazione e la chiave dell'account per creare un'istanza di BlobService per l'applicazione.

Il codice seguente nel file example.rb crea un'istanza di un nuovo oggetto BlobService. Sostituire i valori accountname e accountkey con il nome e la chiave dell'account.

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

Eseguire l'esempio

L'esempio crea un contenitore in Archiviazione BLOB, crea un nuovo BLOB nel contenitore, elenca i BLOB presenti nel contenitore e scarica il BLOB in un file locale.

Eseguire l'esempio. Ecco un esempio dell'output risultante dall'esecuzione dell'applicazione:

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 si preme INVIO per continuare, il programma di esempio elimina il contenitore di archiviazione e il file locale. Prima di continuare, controllare che nella cartella Documenti sia presente il file scaricato.

È anche possibile usare Azure Storage Explorer per visualizzare i file nell'account di archiviazione. Azure Storage Explorer è uno strumento multipiattaforma gratuito che consente di accedere alle informazioni dell'account di archiviazione.

Dopo aver verificato i file, premere INVIO per eliminare i file di test e terminare la demo. Aprire il file example.rb per esaminare il codice.

Informazioni sul codice di esempio

Questa sezione descrive in dettaglio il funzionamento del codice di esempio.

Ottenere i riferimenti agli oggetti di archiviazione

La prima cosa da fare è creare istanze degli oggetti usati per accedere e gestire Archiviazione BLOB. Questi oggetti sono basati l'uno sull'altro. Ognuno viene usato da quello successivo nell'elenco.

  • Creare un'istanza dell'oggetto BlobService di Archiviazione di Azure per configurare le credenziali di connessione.
  • Creare l'oggetto Container, che rappresenta il contenitore a cui si sta accedendo. I contenitori vengono usati per organizzare i BLOB, così come si usano le cartelle nel computer per organizzare i file.

Dopo aver creato l'oggetto contenitore, è possibile creare un oggetto BLOB Block che punta a un BLOB specifico a cui si è interessati. Usare l'oggetto Block per creare, scaricare e copiare BLOB.

Importante

I nomi dei contenitori devono essere in minuscolo. Per altre informazioni sui nomi di contenitori e BLOB, vedere Naming and Referencing Containers, Blobs, and Metadata (Denominazione e riferimento a contenitori, BLOB e metadati).

Il codice di esempio seguente:

  • Crea un nuovo contenitore.
  • Imposta le autorizzazioni per il contenitore in modo da rendere i BLOB pubblici. Il contenitore è denominato quickstartblobs con l'aggiunta di un ID univoco alla fine.
# 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")

Creare un BLOB nel contenitore

Archiviazione BLOB supporta BLOB in blocchi, BLOB di accodamento e BLOB di pagine. Per creare un BLOB, chiamare il metodo create_block_blob passando i dati per il BLOB.

L'esempio seguente crea un BLOB denominato QuickStart_ con un ID univoco e l'estensione file txt nel contenitore creato in precedenza.

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

I BLOB in blocchi possono avere dimensioni fino a 4,7 TB ed essere qualsiasi tipo di file, da fogli di calcolo a file video di grandi dimensioni. I BLOB di pagine vengono usati principalmente per i file VHD su cui si basano le macchine virtuali IaaS. I BLOB di accodamento sono comunemente usati per la registrazione, ad esempio quando si vuole scrivere in un file e poi continuare ad aggiungere altre informazioni.

Elencare i BLOB in un contenitore

Ottenere un elenco di file nel contenitore usando il metodo list_blobs. Il codice seguente recupera l'elenco dei BLOB e ne visualizza i nomi.

# 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

Scaricare un BLOB

Scaricare un BLOB nel disco locale usando il metodo get_blob. Il codice seguente scarica il BLOB creato in una sezione precedente.

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

Pulire le risorse

Se un BLOB non serve più, usare delete_blob per rimuoverlo. Per eliminare un intero contenitore, usare il metodo delete_container. Se si elimina un contenitore, vengono eliminati anche tutti i BLOB archiviati in tale contenitore.

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

Risorse per lo sviluppo di applicazioni Ruby con BLOB

Per lo sviluppo Ruby, vedere le risorse aggiuntive seguenti:

Passaggi successivi

In questo argomento di avvio rapido è stato illustrato come trasferire file tra Archiviazione BLOB di Azure e un disco locale con Ruby. Per altre informazioni sull'uso di Archiviazione BLOB, continuare con la panoramica dell'account di archiviazione.

Per altre informazioni su Storage Explorer e i BLOB, vedere Gestire le risorse di archiviazione BLOB di Azure con Storage Explorer.