Sdílet prostřednictvím


Začínáme se službou Azure Blob Storage a Pythonem

V tomto článku se dozvíte, jak se připojit ke službě Azure Blob Storage pomocí klientské knihovny služby Azure Blob Storage pro Python. Po připojení se pomocí příruček pro vývojáře dozvíte, jak váš kód funguje s kontejnery, objekty blob a funkcemi služby Blob Storage.

Pokud chcete začít s úplným příkladem, podívejte se na rychlý start: Klientská knihovna azure Blob Storage pro Python.

Referenční informace k | rozhraní APIBalíček (PyPi) | Zdrojový kód | knihovnyVzorky | Váš názor

Prerequisites

Nastavení projektu

Tato část vás provede přípravou projektu pro práci s klientskou knihovnou Azure Blob Storage pro Python.

Z adresáře projektu nainstalujte balíčky pro klientské knihovny Azure Blob Storage a Azure Identity pomocí pip install příkazu. Balíček azure-identity je potřeba pro připojení bez hesla ke službám Azure.

pip install azure-storage-blob azure-identity

Pak otevřete soubor kódu a přidejte potřebné příkazy importu. V tomto příkladu přidáme do souboru .py následující položky:

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

Informace o knihovně klienta Blobu.

  • azure.storage.blob: Obsahuje primární třídy (klientské objekty), které můžete použít k provozu se službou, kontejnery a objekty blob.

Asynchronní programování

Klientská knihovna Azure Blob Storage pro Python podporuje synchronní i asynchronní rozhraní API. Asynchronní rozhraní API jsou založená na knihovně asyncio Pythonu.

Pokud chcete v projektu použít asynchronní rozhraní API, postupujte takto:

  • Nainstalujte asynchronní přenos, například aiohttp. Můžete instalovat aiohttp spolu s azure-storage-blob pomocí příkazu pro instalaci volitelných závislostí. V tomto příkladu použijeme následující pip install příkaz:

    pip install azure-storage-blob[aio]
    
  • Otevřete soubor kódu a přidejte potřebné příkazy importu. V tomto příkladu přidáme do souboru .py následující položky:

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

    Tento import asyncio příkaz se vyžaduje jenom v případě, že v kódu používáte knihovnu. Tady je přidána pro přehlednost, protože příklady v článcích příručky pro vývojáře používají knihovnu asyncio .

  • Vytvořte objekt klienta, který používá async with k zahájení práce s datovými prostředky. Pouze klient nejvyšší úrovně musí používat async with, protože ostatní klienti, kteří jsou z něj vytvořeni, sdílejí stejný fond připojení. V tomto příkladu BlobServiceClient vytvoříme objekt pomocí async witha pak vytvoříme ContainerClient objekt:

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

    Další informace najdete v asynchronních příkladech v tématu Autorizace přístupu a připojení ke službě Blob Storage.

Informace o asynchronní klientské knihovně Blob:

  • azure.storage.blob.aio: Obsahuje primární třídy, které můžete použít k asynchronní práci se službou, kontejnery a objekty blob.

Autorizace přístupu a připojení ke službě Blob Storage

Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte instanci třídy BlobServiceClient . Tento objekt je vaším výchozím bodem pro interakci s datovými prostředky na úrovni účtu úložiště. Můžete jej použít ke správě účtu úložiště a jeho kontejnerů. Klienta služby můžete také použít k vytvoření klientů kontejnerů nebo klientů objektů blob v závislosti na prostředku, se kterým potřebujete pracovat.

Další informace o vytváření a správě klientských objektů, včetně osvědčených postupů, najdete v tématu Vytváření a správa klientských objektů, které pracují s datovými prostředky.

Objekt můžete autorizovat BlobServiceClient pomocí autorizačního tokenu Microsoft Entra, přístupového klíče účtu nebo sdíleného přístupového podpisu (SAS). Pro zajištění optimálního zabezpečení Microsoft doporučuje používat Microsoft Entra ID se spravovanými identitami k autorizaci požadavků na data objektů blob. Další informace naleznete v tématu Autorizace přístupu k objektům blob pomocí Microsoft Entra ID.

Pokud chcete autorizovat pomocí ID Microsoft Entra, musíte použít bezpečnostní principál. Jaký typ objektu zabezpečení potřebujete, závisí na tom, kde vaše aplikace běží. Jako vodítko použijte následující tabulku:

Kde aplikace běží Bezpečnostní hlavní prvek Guidance
Místní počítač (vývoj a testování) Hlavní služba Informace o registraci aplikace, nastavení skupiny Microsoft Entra, přiřazení rolí a konfigurace proměnných prostředí najdete v tématu Autorizace přístupu pomocí instančních objektů pro vývojáře.
Místní počítač (vývoj a testování) Identita uživatele Informace o nastavení skupiny Microsoft Entra, přiřazení rolí a přihlášení k Azure najdete v tématu Autorizace přístupu pomocí přihlašovacích údajů pro vývojáře.
Hostované v Azure Spravovaná identita Informace o povolení spravované identity a přiřazování rolí najdete v tématu Autorizace přístupu z aplikací hostovaných v Azure pomocí spravované identity.
Hostované mimo Azure (například místní aplikace) Hlavní služba Informace o registraci aplikace, přiřazení rolí a konfiguraci proměnných prostředí najdete v tématu Autorizace přístupu z místních aplikací pomocí instančního objektu aplikace.

Autorizace přístupu pomocí DefaultAzureCredential

Snadným a bezpečným způsobem autorizace přístupu a připojení ke službě Blob Storage je získání tokenu OAuth vytvořením instance DefaultAzureCredential . Tyto přihlašovací údaje pak můžete použít k vytvoření objektu BlobServiceClient .

Následující příklad vytvoří BlobServiceClient objekt pomocí DefaultAzureCredential:

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

Pokud váš projekt používá asynchronní rozhraní API, vytvořte instanci BlobServiceClient pomocí :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

Vytvořte aplikaci

Při vytváření aplikací pro práci s datovými prostředky ve službě Azure Blob Storage váš kód primárně komunikuje se třemi typy prostředků: účty úložiště, kontejnery a objekty blob. Další informace o těchto typech zdrojů, jejich vzájemném vztahu a o tom, jak aplikace interagují se zdroji, naleznete v tématu Pochopení, jak aplikace interagují s datovými zdroji Blob Storage.

Následující příručky ukazují, jak získat přístup k datům a provádět konkrétní akce pomocí klientské knihovny Azure Storage pro Python:

Guide Description
Konfigurujte zásady opakování Implementujte zásady opakování pro klientské operace.
Kopírování objektů blob Zkopírujte blob z jednoho umístění do druhého.
Vytvoření kontejneru Vytvořte kontejnery blob.
Vytvořit pověření uživatele SAS Vytvořte uživatelské delegování SAS pro kontejner nebo objekt blob.
Vytváření a správa pronájmu blobů Vytvořte a spravujte zámek objektu blob.
Vytváření a správa zapůjčení kontejnerů Vytvořte a spravujte zámek kontejneru.
Odstranění a obnovení blobů Odstraňte objekty blob a obnovte měkce odstraněné objekty blob.
Odstranění a obnovení kontejnerů Odstraňte kontejnery a obnovte kontejnery, které byly měkce odstraněny.
Stažení blobů Stáhněte objekty blob pomocí textových řetězců, datových proudů a cest k souborům.
Vyhledání objektů blob pomocí značek Nastavte a načtěte značky a použijte je k vyhledání blobů.
Seznam blobů Seznam objektů blobů různými způsoby
Výpis kontejnerů Vypište kontejnery v účtu a různé možnosti přizpůsobení výpisu.
Správa vlastností a metadat (objektů blob) Získejte a nastavte vlastnosti a metadata pro objekty blob.
Správa vlastností a metadat (kontejnerů) Nastavte a získejte vlastnosti a metadata pro kontejnery.
Ladění výkonu pro přenosy dat Optimalizujte výkon operací přenosu dat.
Nastavení nebo změna úrovně přístupu objektu blob Nastavte nebo změňte úroveň přístupu pro blokový blob.
Nahrání blobů Naučte se nahrávat blobs pomocí řetězců, streamů, cest k souborům a dalších metod.