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:
Biblioteca de cliente de Azure Storage para Ruby, mediante el paquete RubyGem:
gem install azure-storage-blob
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:
En Azure Portal, vaya a la cuenta de almacenamiento.
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.
Anote el nombre de la cuenta de almacenamiento, lo necesitará para la autorización.
Busque el valor de Clave en key1 y seleccione Copiar para copiar la clave de la cuenta.
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:
- Consulte e instale el código fuente de la biblioteca de cliente de Ruby para Azure Storage en GitHub.
- Explore los ejemplos de Azure escritos mediante la biblioteca de cliente de Ruby.
- Ejemplo: Introducción a Azure Storage en 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.