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í může váš kód pracovat s kontejnery, objekty blob a funkcemi služby Blob Storage.

Referenční balíček rozhraní API (PyPi) | Ukázky | zdrojového kódu | knihovny zpětnou vazbu |

Požadavky

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 klientské knihovně objektů blob:

  • 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 ho nainstalovat aiohttp pomocí azure-storage-blob volitelného příkazu pro instalaci 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ří z něj vytvořili, 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ě objektů 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 ho použít k provozu s účtem úložiště a jeho kontejnery. 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 Microsoft Entra ID se spravovanými identitami autorizovat požadavky na data objektů blob. Další informace naleznete v tématu Autorizace přístupu k objektům blob pomocí Microsoft Entra ID.

Pokud chcete autorizovat s ID Microsoft Entra, musíte použít instanční objekt zabezpečení. 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ěží Objekt zabezpečení Pokyny
Místní počítač (vývoj a testování) Instanční objekt 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) Instanční objekt 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

Sestavení aplikace

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 otěchtoch materiálech najdete v tématu Vysvětlení způsobu interakce aplikací s datovými prostředky blob Storage.

Následující příručky ukazují, jak pracovat s datovými prostředky a provádět konkrétní akce pomocí klientské knihovny Azure Storage pro Python:

Průvodce Popis
Vytvoření kontejneru Vytvořte kontejnery.
Odstranění a obnovení kontejnerů Odstraňte kontejnery a pokud je povolené obnovitelné odstranění, obnovte odstraněné kontejnery.
Výpis kontejnerů Vypište kontejnery v účtu a různé možnosti, které můžete přizpůsobit výpis.
Správa vlastností a metadat (kontejnerů) Získejte a nastavte vlastnosti a metadata pro kontejnery.
Vytváření a správa zapůjčení kontejnerů Vytvořte a spravujte zámek kontejneru.
Vytváření a správa zapůjčení objektů blob Vytvořte a spravujte zámek objektu blob.
Nahrání objektů blob Naučte se nahrávat objekty blob pomocí řetězců, datových proudů, cest k souborům a dalších metod.
Stažení objektů blob Stáhněte objekty blob pomocí řetězců, datových proudů a cest k souborům.
Kopírování objektů blob Zkopírujte objekt blob z jednoho umístění do druhého.
Výpis objektů blob Výpis objektů blob různými způsoby
Odstranění a obnovení Odstraňte objekty blob a pokud je povolené obnovitelné odstranění, obnovte odstraněné objekty blob.
Vyhledání objektů blob pomocí značek Nastavte a načtěte značky a použijte značky k vyhledání objektů blob.
Správa vlastností a metadat (objektů blob) Získejte a nastavte vlastnosti a metadata pro objekty blob.
Nastavení nebo změna úrovně přístupu objektu blob Nastavte nebo změňte úroveň přístupu pro objekt blob bloku.