Schnellstart: Verwalten von Blobs per Python v12 SDK
In dieser Schnellstartanleitung erfahren Sie, wie Sie Blobs mit Python verwalten. Bei Blobs handelt es sich um Objekte, die große Mengen von Text oder Binärdaten enthalten können, z. B. Bilder, Dokumente, Streamingmedien und Archivdaten. Sie führen das Hochladen, Herunterladen und Auflisten von Blobs und das Erstellen und Löschen von Containern durch.
Weitere Ressourcen:
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Azure Storage-Konto Informationen zu Azure-Speicherkonten
- Python 2.7 bzw. 3.6 oder höher
Einrichten
In diesem Abschnitt wird beschrieben, wie ein Projekt für die Verwendung mit der Azure Blob Storage-Clientbibliothek v12 für Python vorbereitet wird.
Erstellen des Projekts
Erstellen Sie eine Python-Anwendung mit dem Namen blob-quickstart-v12.
Erstellen Sie in einem Konsolenfenster (z. B. cmd, PowerShell oder Bash) ein neues Verzeichnis für das Projekt.
mkdir blob-quickstart-v12Wechseln Sie zu dem neu erstellten Verzeichnis blob-quickstart-v12.
cd blob-quickstart-v12
Installieren des Pakets
Installieren Sie im Anwendungsverzeichnis mit dem Befehl pip install das Paket mit der Azure Blob Storage-Clientbibliothek für Python.
pip install azure-storage-blob
Dieser Befehl installiert das Paket mit der Azure Blob Storage-Clientbibliothek für Python und alle Bibliotheken, von denen die Bibliothek abhängig ist. In diesem Fall ist das nur die Azure Core-Bibliothek für Python.
Einrichten des App-Frameworks
Über das Projektverzeichnis:
Öffnen einer neuen Textdatei im Code-Editor
Hinzufügen von
import-AnweisungenErstellen der Struktur für das Programm, einschließlich einer einfachen Ausnahmebehandlung
Der Code lautet wie folgt:
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)Speichern Sie die neue Datei als blob-quickstart-v12.py im Verzeichnis blob-quickstart-v12.
Kopieren Ihrer Anmeldeinformationen aus dem Azure-Portal
Wenn die Beispielanwendung eine Anforderung an Azure Storage sendet, muss diese autorisiert werden. Fügen Sie zum Autorisieren einer Anforderung die Anmeldeinformationen für Ihr Speicherkonto in Form einer Verbindungszeichenfolge hinzu. Führen Sie zum Anzeigen der Anmeldeinformationen Ihres Speicherkontos die folgenden Schritte aus:
Melden Sie sich beim Azure-Portal an.
Suchen Sie nach Ihrem Speicherkonto.
Wählen Sie im Speicherkonto-Menübereich unter Sicherheit + Netzwerkbetrieb die Option Zugriffsschlüssel aus. Hier können Sie die Kontozugriffsschlüssel und die vollständige Verbindungszeichenfolge für jeden Schlüssel anzeigen.

Wählen Sie im Bereich Zugriffsschlüssel die Option Schlüssel anzeigen aus.
Suchen Sie im Abschnitt key1 nach dem Wert Verbindungszeichenfolge. Wählen Sie das Symbol In Zwischenablage kopieren zum Kopieren der Verbindungszeichenfolge aus. Im nächsten Abschnitt fügen Sie den Wert der Verbindungszeichenfolge in eine Umgebungsvariable ein.

Konfigurieren der Speicherverbindungszeichenfolge
Schreiben Sie die Verbindungszeichenfolge nach dem Kopieren in eine neue Umgebungsvariable auf dem lokalen Computer, auf dem die Anwendung ausgeführt wird. Öffnen Sie zum Festlegen der Umgebungsvariablen ein Konsolenfenster, und befolgen Sie die Anleitung für Ihr Betriebssystem. Ersetzen Sie <yourconnectionstring> durch Ihre Verbindungszeichenfolge.
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Sie müssen nach dem Hinzufügen der Umgebungsvariablen unter Windows eine neue Instanz des Befehlsfensters öffnen.
Neustarten von Programmen
Nachdem Sie die Umgebungsvariable hinzugefügt haben, starten Sie alle ausgeführten Programme neu, in denen die Umgebungsvariable gelesen werden muss. Starten Sie beispielsweise die Entwicklungsumgebung oder den Editor neu, bevor Sie fortfahren.
Objektmodell
Azure Blob Storage ist für die Speicherung großer Mengen unstrukturierter Daten optimiert. Unstrukturierte Daten sind Daten, die keinem bestimmten Datenmodell und keiner bestimmten Definition entsprechen (also beispielsweise Text- oder Binärdaten). Blob Storage bietet drei Typen von Ressourcen:
- Das Speicherkonto
- Einen Container im Speicherkonto
- Ein Blob im Container
Im folgenden Diagramm ist die Beziehung zwischen diesen Ressourcen dargestellt.

Verwenden Sie die folgenden Python-Klassen zur Interaktion mit diesen Ressourcen:
- BlobServiceClient: Die
BlobServiceClient-Klasse ermöglicht Ihnen, Azure Storage-Ressourcen und Blobcontainer zu bearbeiten. - ContainerClient: Die
ContainerClient-Klasse ermöglicht Ihnen, Azure Storage-Container und deren Blobs zu bearbeiten. - BlobClient: Die
BlobClient-Klasse ermöglicht Ihnen, Azure Storage-Blobs zu bearbeiten.
Codebeispiele
Mit diesen Beispielcodeausschnitten wird veranschaulicht, wie folgende Vorgänge mit der Azure Blob Storage-Clientbibliothek für Python durchgeführt werden:
- Abrufen der Verbindungszeichenfolge
- Container erstellen
- Hochladen von Blobs in einen Container
- Auflisten der Blobs in einem Container
- Herunterladen von Blobs
- Löschen eines Containers
Abrufen der Verbindungszeichenfolge
Der folgende Code ruft die Verbindungszeichenfolge für das Speicherkonto aus der Umgebungsvariablen ab, die im Abschnitt Konfigurieren der Speicherverbindungszeichenfolge erstellt wurde.
Fügen Sie diesen Code im try-Block hinzu:
# 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')
Erstellen eines Containers
Legen Sie einen Namen für den neuen Container fest. Der folgende Code hängt einen UUID-Wert an den Containernamen an, damit dieser eindeutig ist.
Wichtig
Die Containernamen müssen klein geschrieben werden. Weitere Informationen zum Benennen von Containern und Blobs finden Sie unter Naming and Referencing Containers, Blobs, and Metadata (Benennen von Containern, Blobs und Metadaten und Verweisen auf diese).
Erstellen Sie eine Instanz der BlobServiceClient-Klasse, indem Sie die from_connection-string-Methode aufrufen. Rufen Sie dann die create-container-Methode auf, um den Container in Ihrem Speicherkonto zu erstellen.
Fügen Sie diesen Code am Ende des try-Blocks hinzu:
# 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)
Hochladen von Blobs in einen Container
Der folgende Codeausschnitt führt folgende Aktionen durch:
- Erstellen eines lokalen Verzeichnisses zum Speichern von Datendateien
- Erstellen einer Textdatei im lokalen Verzeichnis
- Abrufen eines Verweises auf ein BlobClient-Objekt durch Aufrufen der get_blob_client-Methode für den BlobServiceClient aus dem Abschnitt Erstellen eines Containers
- Hochladen der lokalen Textdatei in das Blob durch Aufrufen der upload_blob-Methode
Fügen Sie diesen Code am Ende des try-Blocks hinzu:
# 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)
Auflisten der Blobs in einem Container
Listen Sie die Blobs im Container auf, indem Sie die list-blobs-Methode aufrufen. In diesem Fall wurde dem Container nur ein Blob hinzugefügt, sodass beim Auflisten auch nur ein Blob zurückgegeben wird.
Fügen Sie diesen Code am Ende des try-Blocks hinzu:
print("\nListing blobs...")
# List the blobs in the container
blob_list = container_client.list_blobs()
for blob in blob_list:
print("\t" + blob.name)
Herunterladen von Blobs
Laden Sie das zuvor erstellte Blob herunter, indem Sie die download_blob-Methode aufrufen. Im Beispielcode wird das Suffix „DOWNLOAD“ an den Dateinamen angefügt, damit beide Dateien im lokalen Dateisystem angezeigt werden können.
Fügen Sie diesen Code am Ende des try-Blocks hinzu:
# 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'))
blob_client = blob_service_client.get_container_client(container= container_name)
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(blob.name).readall())
Löschen eines Containers
Mit dem folgenden Code werden die von der App erstellten Ressourcen bereinigt, indem der gesamte Container mit der delete_container-Methode gelöscht wird. Sie können bei Bedarf auch die lokalen Dateien löschen.
Die App wird unterbrochen, um auf Benutzereingaben zu warten, indem input() aufgerufen wird, bevor Blob, Container und lokale Dateien gelöscht werden. Überprüfen Sie, ob die Ressourcen ordnungsgemäß erstellt wurden, bevor sie gelöscht werden.
Fügen Sie diesen Code am Ende des try-Blocks hinzu:
# 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")
Ausführen des Codes
Mit dieser App wird in Ihrem lokalen Ordner eine Testdatei erstellt und in Azure Blob Storage hochgeladen. Im Beispiel werden dann die Blobs im Container aufgelistet, und die Datei wird mit einem neuen Namen heruntergeladen. Sie können die alten und neuen Dateien vergleichen.
Navigieren Sie zu dem Verzeichnis, das die Datei blob-quickstart-v12.py enthält, und führen Sie dann den folgenden python-Befehl aus, um die App auszuführen.
python blob-quickstart-v12.py
Die Ausgabe der App sieht etwa wie das folgende Beispiel aus:
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
Überprüfen Sie den Ordner data vor dem Start der Bereinigung auf die beiden Dateien. Sie können sie öffnen und sich vergewissern, dass sie identisch sind.
Nachdem Sie die Dateien erfolgreich überprüft haben, drücken Sie die EINGABETASTE, um die Testdateien zu löschen und die Demo zu beenden.
Nächste Schritte
In diesem Schnellstart wurde beschrieben, wie Sie Blobs mit Python hochladen, herunterladen und auflisten.
Weitere Beispiel-Apps für Blob Storage finden Sie unter:
- Weitere Informationen finden Sie unter Azure Storage-Clientbibliotheken für Python.
- Tutorials, Beispiele, Schnellstarts und weitere Dokumentation finden Sie unter Azure für Python-Entwickler.