Inicio rápido: Biblioteca cliente de Azure Blob Storage para Ruby

Aprenda a usar Ruby para crear, descargar y enumerar los blobs de un contenedor en Microsoft Azure Blob Storage.

Requisitos previos

Para acceder a Azure Storage, necesitará una suscripción de Azure. Si todavía no tiene una suscripción, cree una cuenta gratuita antes de empezar.

Todo el acceso a Azure Storage tiene lugar mediante una cuenta de almacenamiento. En este inicio rápido, cree una cuenta de almacenamiento con Azure Portal, Azure PowerShell o la CLI de Azure. Si necesita ayuda para crear una cuenta de almacenamiento, consulte Creación de una cuenta de almacenamiento.

Asegúrese de tener instalados los siguientes requisitos previos adicionales:

Descarga de la aplicación de ejemplo

La aplicación de ejemplo utilizada en esta guía de inicio rápido es una aplicación Ruby básica.

Use Git para descargar una copia de la aplicación en su entorno de desarrollo. Este comando clona el repositorio en una máquina local:

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

Vaya a la carpeta storage-blobs-ruby-quickstart y abra el archivo example.rb en un editor de código.

Copia de las credenciales desde Azure Portal

La aplicación de ejemplo debe autorizar el acceso a su cuenta de almacenamiento. Proporcione las credenciales de la cuenta de almacenamiento a la aplicación en forma de una cadena de conexión. Para ver las credenciales de la cuenta de almacenamiento:

  1. En Azure Portal, vaya a la cuenta de almacenamiento.

  2. En la sección Configuración de la información general de la cuenta de almacenamiento, seleccione Claves de acceso para mostrar las claves de acceso y la cadena de conexión de la cuenta.

  3. Anote el nombre de la cuenta de almacenamiento, lo necesitará para la autorización.

  4. Busque el valor de Clave en key1 y seleccione Copiar para copiar la clave de la cuenta.

    Captura de pantalla que muestra cómo copiar la clave de cuenta desde Azure Portal

Configuración de la cadena de conexión de almacenamiento.

Especifique el nombre y la clave de la cuenta de Storage para crear una instancia de BlobService para la aplicación.

El siguiente código del archivo example.rb crea una instancia de un nuevo objeto BlobService. Reemplace los valores accountname y accountkey con el nombre de cuenta y la clave.

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

Ejecución del ejemplo

En el ejemplo se crea un contenedor en Blob Storage, se crea un blob en el contenedor, se enumeran los blobs del contenedor y se descarga el blob en un archivo local.

Ejecute el ejemplo. A continuación se muestra un ejemplo de la salida que se genera al ejecutarse la aplicación:

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

Si presionar Entrar para continuar, el programa de ejemplo elimina el contenedor de almacenamiento y el archivo local. Antes de continuar, compruebe la carpeta Documents del archivo descargado.

También puede usar el Explorador de Azure Storage para ver los archivos de su cuenta de Storage. El Explorador de Azure Storage es una herramienta gratuita multiplataforma que permite acceder a la información de la cuenta de almacenamiento.

Después de haber comprobado los archivos, presione la tecla Entrar para eliminar los archivos de prueba y finalizar la demostración. Abra el archivo example.rb para ver el código.

Descripción del código de ejemplo

A continuación, se explicará el código de ejemplo, con el fin de que sepa cómo funciona.

Obtención de referencias a los objetos de almacenamiento

Lo primero que hay que hacer es crear las instancias de los objetos usados para acceder a Blob Storage y administrarlo. Estos objetos dependen unos de otros. Cada uno es utilizado por el siguiente de la lista.

  • Cree una instancia del objeto BlobService de Azure Storage para configurar las credenciales de conexión.
  • Cree el objeto Container, que representa el contenedor al que accede. Los contenedores se usan para organizar los blobs al igual que se usan las carpetas en el equipo para organizar los archivos.

Una vez que tenga el objeto Container, puede crear un objeto de blob blobClient que apunte al blob específico en el que está interesado. Use el objeto Block para crear, descargar y copiar blobs.

Importante

Los nombres de contenedor deben estar en minúsculas. Para más información sobre la nomenclatura de contenedores y blobs, consulte Naming and Referencing Containers, Blobs, and Metadata (Asignación de nombres y referencia a contenedores, blobs y metadatos).

El siguiente código de ejemplo:

  • Crea un contenedor.
  • Establece permisos en el contenedor para que los blobs sean públicos. El contenedor se denomina quickstartblobs y tiene un identificador único anexo.
# 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")

Creación de un blob en el contenedor

Blob Storage admite blobs en bloques, blobs en anexos y blobs en páginas. Para crear un blob, llame al método create_block_blob que pasa los datos del blob.

En el ejemplo siguiente se crea un blob denominado QuickStart_ con un identificador único y la extensión .txt en el contenedor que se creó 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)

Los blobs en bloques pueden tener un tamaño de hasta 4,7 TB y pueden ser cualquier cosa, desde hojas de cálculo a archivos de vídeo grandes. Los blobs en páginas se usan principalmente para los archivos de disco duro virtual que respaldan las máquinas virtuales IaaS. Los blobs en anexos habitualmente se utilizan para el registro, por ejemplo, cuando desea escribir en un archivo y luego agregar más información.

Enumeración de los blobs de un contenedor

Obtenga una lista de archivos del contenedor con el método list_blobs. El siguiente código recupera la lista de blobs y, después, muestra sus nombres.

# 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

Descarga de un blob

Descargue un blob en el disco local mediante el método get_blob. El código siguiente descarga el blob creado en una sección 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)}

Limpieza de recursos

Si ya no se necesita un blob, use delete_blob para quitarlo. Elimine todo un contenedor mediante el método delete_container. Al eliminar un contenedor también se eliminan los blobs almacenados en él.

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

Recursos para el desarrollo de aplicaciones Ruby con blobs

Consulte estos recursos adicionales para el desarrollo de Ruby:

Pasos siguientes

En este inicio rápido ha aprendido a transferir archivos entre Azure Blob Storage y un disco local mediante Ruby. Para más información sobre cómo trabajar con Blob Storage, continúe con la información general de la cuenta de Storage.

Para más información sobre el Explorador de Storage y los blobs, consulte Administración de recursos de Azure Blob Storage con el Explorador de Storage.