Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aprenda a usar Ruby para crear, descargar y enumerar blobs en un contenedor de Microsoft Azure Blob Storage.
Prerrequisitos
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 que tiene instalados los siguientes requisitos previos adicionales:
Biblioteca 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 que se usa en este inicio rápido es una aplicación básica de Ruby.
Utiliza git para descargar una copia de la aplicación a tu entorno de desarrollo. Este comando clona el repositorio en la 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 el editor de código.
Copia tus credenciales del portal de Azure
La aplicación de ejemplo debe autorizar el acceso a la cuenta de almacenamiento. Proporcione las credenciales de la cuenta de almacenamiento a la aplicación en forma de cadena de conexión. Para ver las credenciales de la cuenta de almacenamiento:
Inicie sesión en el portal de Azure y vaya a su 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, que necesitará para la autorización.
Busque el valor de Key en key1y seleccione Copiar para copiar la clave de cuenta.
Configuración de la cadena de conexión de almacenamiento.
Proporcione el nombre de la cuenta de almacenamiento y la clave de cuenta para crear una instancia de BlobService para la aplicación.
El código siguiente del archivo example.rb crea una instancia de un nuevo objeto BlobService . Reemplace los valores accountname y accountkey por el nombre y la clave de la cuenta.
# 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
El ejemplo crea un contenedor en Blob Storage, crea un nuevo blob en el contenedor, enumera los blobs del contenedor y descarga el blob en un archivo local.
Ejecute el ejemplo. Este es un ejemplo de la salida de la ejecución de 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
Al presionar Entrar para continuar, el programa de ejemplo elimina el contenedor de almacenamiento y el archivo local. Antes de continuar, compruebe la carpeta Documentos del archivo descargado.
También puede usar el Explorador de Azure Storage para ver los archivos de la cuenta de almacenamiento. 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 comprobar los archivos, presione la tecla Entrar para eliminar los archivos de prueba y finalizar la demostración. Abra el archivo example.rb para examinar el código.
Descripción del código de ejemplo
A continuación, le guiaremos por el código de ejemplo para que pueda comprender cómo funciona.
Obtención de referencias a los objetos de almacenamiento
Lo primero que debe hacer es crear instancias de los objetos usados para acceder a Blob Storage y administrarlos. Estos objetos se construyen unos sobre otros. El siguiente en la lista utiliza cada uno.
- 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 está accediendo. Los contenedores se usan para organizar los blobs de la misma manera que usas carpetas en tu ordenador para organizar tus archivos.
Una vez que tenga el objeto contenedor, puede crear un objeto de blob Block que apunte a un 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 obtener más información sobre los nombres de contenedor y blob, consulte Nomenclatura y Referencia de Contenedores, Blobs y Metadatos.
El código de ejemplo siguiente:
- Crea un nuevo contenedor
- Establece permisos en el contenedor para que los blobs sean públicos. El contenedor se denomina quickstartblobs con un identificador único 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")
Creación de un blob en el contenedor
Blob Storage admite blobs de bloques, blobs de anexos y blobs de páginas. Para crear un blob, llame al método create_block_blob pasando los datos del blob.
En el ejemplo siguiente se crea un blob denominado QuickStart_ con un identificador único y una extensión de archivo.txt en el contenedor creado 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 ser tan grandes como 4,7 TB y pueden ser cualquier cosa, desde hojas de cálculo hasta archivos de vídeo grandes. Los blobs de páginas se usan principalmente para los archivos VHD que respaldan las máquinas virtuales de IaaS. Los blobs de anexar se suelen usar para el registro de datos, como cuando se necesita escribir en un archivo y seguir agregando más información.
Listar los blobs en un contenedor
Obtenga una lista de archivos en el contenedor mediante el método list_blobs . El código siguiente recupera la lista de blobs y, a continuación, 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
Descargar 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 un contenedor completo mediante el método delete_container . Al eliminar un contenedor también se eliminan los blobs almacenados en el contenedor.
# Clean up resources, including the container and the downloaded file
blob_client.delete_container(container_name)
File.delete(full_path_to_file)
Recursos para desarrollar aplicaciones de Ruby con blobs
Consulte estos recursos adicionales para el desarrollo de Ruby:
- Vea y descargue el código fuente de la biblioteca cliente de Ruby para Azure Storage en GitHub.
- Explore los ejemplos de Azure escritos mediante la biblioteca 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 obtener más información sobre Storage Explorer y Blobs, consulte Administración de recursos de Azure Blob Storage con Storage Explorer.