Inicio rápido: Administración de blobs con el SDK de Python v12
En este inicio rápido, se aprende a administrar blobs mediante Python. Los blobs son objetos que pueden contener grandes cantidades de texto o datos binarios, como imágenes, documentos, medios de transmisión y datos de archivo. Cargará, descargará y enumerará los blobs, y creará y eliminará los contenedores.
Más recursos:
- Documentación de referencia de API
- Código fuente de la biblioteca
- Paquete (índice de paquetes de Python)
- Muestras
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Una cuenta de Azure Storage. Crear una cuenta de almacenamiento.
- Python 2.7 o 3.6+.
Instalación
En esta sección se explica cómo preparar un proyecto para que funcione con la biblioteca cliente de Azure Blob Storage v12 para Python.
Creación del proyecto
Cree una aplicación de Python llamada blob-quickstart-v12.
En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para el proyecto.
mkdir blob-quickstart-v12Cambie al directorio blob-quickstart-v12 recién creado.
cd blob-quickstart-v12En el directorio blob-quickstart-v12, cree otro directorio denominado data. Este es el directorio en el que se crearán y almacenarán los archivos de datos de blobs.
mkdir data
Instalar el paquete
Mientras sigue en el directorio de aplicaciones, instale el paquete de la biblioteca cliente de Azure Blob Storage para Python mediante el comando pip install.
pip install azure-storage-blob
Este comando instala el paquete de la biblioteca cliente de Azure Blob Storage para Python y todas las bibliotecas de las que depende. En este caso, se trata solo de la biblioteca principal de Azure para Python.
Instalación del marco de la aplicación
Desde el directorio del proyecto:
Abra un nuevo archivo de texto en el editor de código.
Agregue instrucciones
import.Cree la estructura del programa, incluido un control de excepciones básico.
Este es el código:
import os, uuid from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__ try: print("Azure Blob Storage v" + __version__ + " - Python quickstart sample") # Quick start code goes here except Exception as ex: print('Exception:') print(ex)Guarde el nuevo archivo como blob-quickstart-v12.py en el directorio blob-quickstart-v12.
Copia de las credenciales desde Azure Portal
Cuando la aplicación de ejemplo realiza una solicitud a Azure Storage, debe estar autorizada. Para autorizar una solicitud, agregue a la aplicación las credenciales de la cuenta de almacenamiento en forma de cadena de conexión. Para ver las credenciales de la cuenta de almacenamiento, siga estos pasos:
Inicie sesión en Azure Portal.
Busque su cuenta de almacenamiento.
En el panel del menú de la cuenta de almacenamiento, en Seguridad y redes, seleccione Claves de acceso. Aquí puede ver las claves de acceso de la cuenta, así como la cadena de conexión completa de cada clave.

En el panel Claves acceso, seleccione Mostrar claves.
En la sección key1, busque el valor de Cadena de conexión. Seleccione el icono Copiar al portapapeles para copiar la cadena de conexión. En la siguiente sección, agregará el valor de la cadena de conexión a una variable de entorno.

Configuración de la cadena de conexión de almacenamiento.
Una vez que haya copiado la cadena de conexión, escríbala en una variable de entorno nueva en la máquina local que ejecuta la aplicación. Para establecer la variable de entorno, abra una ventana de consola y siga las instrucciones de su sistema operativo. Reemplace <yourconnectionstring> por la cadena de conexión real.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Después de agregar la variable de entorno en Windows, debe iniciar una nueva instancia de la ventana de comandos.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Reiniciar programas
Después de agregar la variable de entorno, reinicie todos los programas en ejecución que necesiten leer esta variable. Por ejemplo, reinicie el entorno de desarrollo o el editor antes de continuar.
Modelo de objetos
Azure Blob Storage está optimizado para el almacenamiento de cantidades masivas de datos no estructurados. Los datos no estructurados son datos que no se ciñen a ningún un modelo de datos o definición concretos, como texto o datos binarios. Blob Storage ofrece tres tipos de recursos:
- La cuenta de almacenamiento
- Un contenedor en la cuenta de almacenamiento
- Un blob en el contenedor
En el siguiente diagrama se muestra la relación entre estos recursos.

Use las siguientes clases de Python para interactuar con estos recursos:
- BlobServiceClient: La clase
BlobServiceClientpermite manipular recursos de Azure Storage y contenedores de blobs. - ContainerClient: La clase
ContainerClientpermite manipular contenedores de Azure Storage y sus blobs. - BlobClient: La clase
BlobClientpermite manipular los blobs de Azure Storage.
Ejemplos de código
Estos fragmentos de código de ejemplo muestran cómo realizar las siguientes tareas con la biblioteca cliente de Azure Blob Storage para Python:
- Obtención de la cadena de conexión
- Creación de un contenedor
- Carga de los blobs en un contenedor
- Enumeración de los blobs de un contenedor
- Descarga de los blobs
- Eliminación de un contenedor
Obtención de la cadena de conexión
El código siguiente recupera la cadena de conexión de la cuenta de almacenamiento de la variable de entorno creada en la sección Configuración de la cadena de conexión de almacenamiento.
Agregue este código dentro del bloque try:
# Retrieve the connection string for use with the application. The storage
# connection string is stored in an environment variable on the machine
# running the application called AZURE_STORAGE_CONNECTION_STRING. If the environment variable is
# created after the application is launched in a console or with Visual Studio,
# the shell or application needs to be closed and reloaded to take the
# environment variable into account.
connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')
Crear un contenedor
Decida un nombre para el nuevo contenedor. El código siguiente anexa un valor de UUID al nombre de contenedor para garantizar que sea único.
Importante
Los nombres de contenedor deben estar en minúsculas. Para más información acerca de los contenedores de nomenclatura y los blobs, consulte Naming and Referencing Containers, Blobs, and Metadata (Asignación de nombres y realización de referencias a contenedores, blobs y metadatos).
Cree una instancia de la clase BlobServiceClient llamando al método from_connection_string. A continuación, llame al método create_container para crear realmente el contenedor en la cuenta de almacenamiento.
Agregue este código al final del bloque try:
# Create the BlobServiceClient object which will be used to create a container client
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
# Create a unique name for the container
container_name = str(uuid.uuid4())
# Create the container
container_client = blob_service_client.create_container(container_name)
Carga de los blobs en un contenedor
El siguiente fragmento de código:
- Crea un directorio local para almacenar los archivos de datos.
- Crea un archivo de texto en el directorio local.
- Obtiene una referencia a un objeto BlobClient llamando al método get_blob_client en la clase BlobServiceClient de la sección Crear un contenedor.
- Carga el archivo de texto local en el blob llamando al método upload_blob.
Agregue este código al final del bloque try:
# Create a local directory to hold blob data
local_path = "./data"
os.mkdir(local_path)
# Create a file in the local data directory to upload and download
local_file_name = str(uuid.uuid4()) + ".txt"
upload_file_path = os.path.join(local_path, local_file_name)
# Write text to the file
file = open(upload_file_path, 'w')
file.write("Hello, World!")
file.close()
# Create a blob client using the local file name as the name for the blob
blob_client = blob_service_client.get_blob_client(container=container_name, blob=local_file_name)
print("\nUploading to Azure Storage as blob:\n\t" + local_file_name)
# Upload the created file
with open(upload_file_path, "rb") as data:
blob_client.upload_blob(data)
Enumerar los blobs de un contenedor
Enumere los blobs en el contenedor llamando al método list_blobs. En este caso, solo se ha agregado un blob al contenedor, por lo que la operación de enumeración devuelve simplemente dicho blob.
Agregue este código al final del bloque try:
print("\nListing blobs...")
# List the blobs in the container
blob_list = container_client.list_blobs()
for blob in blob_list:
print("\t" + blob.name)
Descargar blobs
Descargue el blob creado previamente llamando al método download_blob. El código de ejemplo agrega el sufijo "DOWNLOAD" al nombre de archivo para que pueda ver ambos archivos en el sistema de archivos local.
Agregue este código al final del bloque try:
# Download the blob to a local file
# Add 'DOWNLOAD' before the .txt extension so you can see both files in the data directory
download_file_path = os.path.join(local_path, str.replace(local_file_name ,'.txt', 'DOWNLOAD.txt'))
print("\nDownloading blob to \n\t" + download_file_path)
with open(download_file_path, "wb") as download_file:
download_file.write(blob_client.download_blob().readall())
Eliminación de un contenedor
El código siguiente limpia los recursos que creó la aplicación; para ello, quita todo el contenedor con el método delete_container. Si lo desea, también puede eliminar los archivos locales.
La aplicación se detiene para la entrada del usuario mediante una llamada a input() antes de eliminar el blob, el contenedor y los archivos locales. Compruebe que los recursos se crearon correctamente antes de su eliminación.
Agregue este código al final del bloque try:
# Clean up
print("\nPress the Enter key to begin clean up")
input()
print("Deleting blob container...")
container_client.delete_container()
print("Deleting the local source and downloaded files...")
os.remove(upload_file_path)
os.remove(download_file_path)
os.rmdir(local_path)
print("Done")
Ejecución del código
Esta aplicación crea un archivo de prueba en la carpeta local y lo carga en Azure Blob Storage. A continuación, el ejemplo enumera los blobs del contenedor y descarga el archivo con otro nombre. Se pueden comparar los archivos antiguos y nuevos.
Navegue hasta el directorio que contiene el archivo blob-quickstart-v12.py y, a continuación, ejecute el siguiente comando de python para ejecutar la aplicación.
python blob-quickstart-v12.py
La salida de la aplicación es similar a la del ejemplo siguiente:
Azure Blob Storage v12 - Python quickstart sample
Uploading to Azure Storage as blob:
quickstartcf275796-2188-4057-b6fb-038352e35038.txt
Listing blobs...
quickstartcf275796-2188-4057-b6fb-038352e35038.txt
Downloading blob to
./data/quickstartcf275796-2188-4057-b6fb-038352e35038DOWNLOAD.txt
Press the Enter key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done
Antes de comenzar el proceso de limpieza, compruebe la carpeta data para ver si están los dos archivos. Puede abrirlos y comprobar que son idénticos.
Después de haber comprobado los archivos, presione la tecla Entrar para eliminar los archivos de prueba y terminar la demostración.
Pasos siguientes
En esta guía de inicio rápido, ha aprendido a cargar, descargar y enumerar blobs mediante Python.
Para ver las aplicaciones de ejemplo de Blob Storage, siga estos pasos:
- Para más información, consulte el artículo sobre las bibliotecas cliente de Azure Storage para Python.
- Para ver tutoriales, ejemplos, artículos de inicio rápido y otra documentación, visite Azure para desarrolladores de Python.