Freigeben über


Erste Schritte mit Azure Blob Storage und Python

In diesem Artikel erfahren Sie, wie Sie mithilfe der Azure Blob Storage-Clientbibliothek für Python eine Verbindung mit Azure Blob Storage herstellen können. Nach der Verbindung kann Ihr Code Container, Blobs und Features des Blob Storage-Diensts verwenden.

API-Referenz | Paket (PyPi) | Bibliotheksquellcode | Beispiele | Feedback geben

Voraussetzungen

Einrichten des Projekts

In diesem Abschnitt wird beschrieben, wie ein Projekt zur Verwendung mit der Azure Blob Storage-Clientbibliothek für Python vorbereitet wird.

Installieren Sie in Ihrem Projektverzeichnis mithilfe des Befehls pip install Pakete für die Azure Blob Storage- und Azure Identity-Clientbibliotheken. Das azure-identity-Paket wird für kennwortlose Verbindungen mit Azure-Diensten benötigt.

pip install azure-storage-blob azure-identity

Öffnen Sie dann Ihre Codedatei, und fügen Sie die erforderlichen Importanweisungen hinzu. In diesem Beispiel fügen Sie Ihrer PY-Datei Folgendes hinzu:

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

Informationen zur Blob-Clientbibliothek:

  • azure.storage.blob: Enthält die primären Klassen (Clientobjekte), die Sie für den Betrieb mit dem Dienst, Containern und Blobs verwenden können.

Asynchrone Programmierung

Die Azure Blob Storage-Clientbibliothek für Python unterstützt synchrone und asynchrone APIs. Die asynchronen APIs basieren auf der asyncio-Bibliothek von Python.

Führen Sie die folgenden Schritte aus, um die asynchronen APIs in Ihrem Projekt zu verwenden:

  • Installieren Sie einen asynchronen Transport, z. B. aiohttp. Sie können die Installation von aiohttp zusammen mit azure-storage-blob mit einem optionalen Abhängigkeitsinstallationsbefehl ausführen. In diesem Beispiel verwenden wir den folgenden pip install-Befehl:

    pip install azure-storage-blob[aio]
    
  • Öffnen Sie dann Ihre Codedatei, und fügen Sie die erforderlichen Importanweisungen hinzu. In diesem Beispiel fügen Sie Ihrer PY-Datei Folgendes hinzu:

    import asyncio
    
    from azure.identity.aio import DefaultAzureCredential
    from azure.storage.blob.aio import BlobServiceClient, BlobClient, ContainerClient
    

    Die import asyncio-Anweisung ist nur erforderlich, wenn Sie die Bibliothek in Ihrem Code verwenden. Sie wird hier zur Übersichtlichkeit hinzugefügt, da die Beispiele in den Artikeln des Entwicklerhandbuchs die asyncio-Bibliothek verwenden.

  • Erstellen Sie ein Clientobjekt, indem Sie unter Verwendung von async with mit der Arbeit mit Datenressourcen beginnen. Nur der Client auf oberster Ebene muss async with verwenden, da andere von ihr erstellte Clients denselben Verbindungspool verwenden. In diesem Beispiel erstellen wir ein BlobServiceClient-Objekt mithilfe von async withund erstellen dann ein ContainerClient-Objekt:

    async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
        container_client = blob_service_client.get_container_client(container="sample-container")
    

    Weitere Informationen finden Sie in den asynchronen Beispielen unter Autorisieren des Zugriffs und Herstellen einer Verbindung mit Blob Storage.

Informationen zur asynchronen Blob-Clientbibliothek:

  • azure.storage.blob.aio: Enthält die primären Klassen, die Sie für den asynchronen Betrieb mit dem Dienst, Containern und Blobs verwenden können.

Autorisieren des Zugriffs und Herstellen einer Verbindung mit Blob Storage

Um eine Verbindung zwischen einer App und Blob Storage herzustellen, erstellen Sie eine Instanz der Klasse BlobServiceClient. Dieses Objekt ist Ihr Ausgangspunkt für die Interaktion mit Datenressourcen auf Speicherkontoebene. Sie können es verwenden, um das Speicherkonto und seine Container zu verwenden. Sie können den Dienstclient auch verwenden, um Containerclients oder Blobclients zu erstellen, je nachdem, mit welcher Ressource Sie arbeiten müssen.

Weitere Informationen zum Erstellen und Verwalten von Clientobjekten finden Sie unter Erstellen und Verwalten von Clientobjekten, die mit Datenressourcen interagieren.

Sie können ein BlobServiceClient-Objekt mithilfe eines Microsoft Entra-Autorisierungstokens, eines Kontozugriffsschlüssels oder einer freigegebenen Zugriffssignatur (SHARED Access Signature, SAS) autorisieren. Um optimale Sicherheit zu gewährleisten, empfiehlt Microsoft möglichst die Verwendung von Microsoft Entra ID mit verwalteten Identitäten, um Anforderungen für Blobdaten zu autorisieren. Weitere Informationen finden Sie unter Autorisieren des Zugriffs auf Blobs mit Microsoft Entra ID.

Um mit Microsoft Entra ID zu autorisieren, müssen Sie einen Sicherheitsprinzipal verwenden. Der Typ des für Sie erforderlichen Sicherheitsprinzipals ist abhängig davon, wo Ihre App ausgeführt wird. Verwenden Sie die folgende Tabelle als Richtlinie:

Ausführungsort der App Sicherheitsprinzipal Leitfaden
Lokaler Computer (Entwickeln und Testen) Dienstprinzipal Informationen zum Registrieren der App, zum Einrichten einer Microsoft Entra-Gruppe, zum Zuweisen von Rollen und zum Konfigurieren von Umgebungsvariablen finden Sie unter Zugriff über Entwicklerdienstprinzipien autorisieren
Lokaler Computer (Entwickeln und Testen) Benutzeridentität Informationen zum Einrichten einer Microsoft Entra-Gruppe, zum Zuweisen von Rollen und zum Anmelden bei Azure finden Sie unter Zugriff mit Entwickleranmeldeinformationen autorisieren
In Azure gehostet Verwaltete Identität Informationen zum Aktivieren einer verwalteten Identität und zum Zuweisen von Rollen finden Sie unter Authenticating Azure-hosted apps to Azure resources with the Azure SDK for Python (Authentifizieren von Azure-gehosteten Apps bei Azure-Ressourcen mit dem Azure SDK für Python).
Außerhalb von Azure gehostet (z. B. lokale Apps) Dienstprinzipal Informationen zum Registrieren der App, zum Zuweisen von Rollen und zum Konfigurieren von Umgebungsvariablen finden Sie unter Authenticate to Azure resources from Python apps hosted on-premises (Authentifizieren bei Azure-Ressourcen mit lokal gehosteten Python-Apps).

Autorisieren des Zugriffs mithilfe von DefaultAzureCredential

Eine einfache und sichere Möglichkeit zum Autorisieren des Zugriffs und zum Herstellen einer Verbindung mit Blob Storage ist das Abrufen eines OAuth-Tokens durch Erstellung einer DefaultAzureCredential-Instanz. Anschließend können Sie mithilfe dieser Anmeldeinformationen ein BlobServiceClient-Objekt erstellen.

Im folgenden Beispiel wird ein BlobServiceClient-Objekt mit DefaultAzureCredential erstellt:

def get_blob_service_client_token_credential(self):
    # TODO: Replace <storage-account-name> with your actual storage account name
    account_url = "https://<storage-account-name>.blob.core.windows.net"
    credential = DefaultAzureCredential()

    # Create the BlobServiceClient object
    blob_service_client = BlobServiceClient(account_url, credential=credential)

    return blob_service_client

Wenn Ihr Projekt asynchrone APIs verwendet, instanziieren Sie BlobServiceClient mithilfe von async with:

# TODO: Replace <storage-account-name> with your actual storage account name
account_url = "https://<storage-account-name>.blob.core.windows.net"
credential = DefaultAzureCredential()

async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
    # Work with data resources in the storage account

Erstellen der App

Wenn Sie Apps für die Arbeit mit Datenressourcen in Azure Blob Storage erstellen, interagiert Ihr Code primär mit drei Ressourcentypen: Speicherkonten, Container und Blobs. Weitere Informationen zu diesen Ressourcentypen, deren Beziehung zueinander und zur Interaktion von Apps mit Ressourcen finden Sie unter Grundlegendes zur Interaktion von Apps mit Blob Storage-Datenressourcen.

In den folgenden Leitfäden wird Ihnen gezeigt, wie Sie auf Daten zugreifen und bestimmte Aktionen mithilfe der Azure Storage-Clientbibliothek für Python ausführen:

Handbuch Beschreibung
Konfigurieren einer Wiederholungsrichtlinie Implementieren Sie Wiederholungsrichtlinien für Clientvorgänge.
Kopieren von Blobs Kopieren Sie ein Blob von einem Speicherort an einen anderen.
Container erstellen Erstellen Sie Blobcontainer.
Erstellen einer SAS für die Benutzerdelegierung Erstellen Sie eine SAS für die Benutzerdelegierung für einen Container oder ein Blob.
Erstellen und Verwalten von Blobleases Richten Sie eine Sperre für ein Blob ein, und verwalten Sie sie.
Erstellen und Verwalten von Containerleases Richten Sie eine Sperre für einen Container ein, und verwalten Sie sie.
Löschen und Wiederherstellen von Blobs Löschen von Blobs und Wiederherstellen vorläufig gelöschter Blobs
Löschen und Wiederherstellen von Containern Löschen von Containern und Wiederherstellen vorläufig gelöschter Container.
Herunterladen von Blobs Herunterladen von Blobs mithilfe von Zeichenfolgen, Streams und Dateipfaden.
Suchen von Blobs mithilfe von Tags Festlegen und Abrufen von Tags sowie Verwenden von Tags für die Suche nach Blobs.
Auflisten von Blobs Auflisten von Blobs auf unterschiedliche Weise.
Auflisten von Containern Auflisten von Containern in einem Konto und der verschiedenen verfügbaren Optionen zum Anpassen einer Auflistung.
Verwalten von Eigenschaften und Metadaten (Blobs) Abrufen und Festlegen von Eigenschaften und Metadaten für Blobs.
Verwalten von Eigenschaften und Metadaten (Container) Abrufen und Festlegen von Eigenschaften und Metadaten für Container.
Leistungsoptimierung für Datenübertragungen Optimieren Sie die Leistung für Datenübertragungsvorgänge.
Festlegen oder Ändern der Zugriffsebene eines Blobs Legen Sie die Zugriffsebene für ein Blockblob fest, oder ändern Sie sie.
Hochladen von Blobs Erfahren Sie, wie Sie Blobs mithilfe von Zeichenfolgen, Streams, Dateipfaden und anderen Methoden hochladen.