Rychlý Start: Správa objektů BLOB pomocí sady Python V12 SDK

V tomto rychlém startu se naučíte spravovat objekty BLOB pomocí Pythonu. Objekty blob jsou objekty, které mohou obsahovat velké objemy textových nebo binárních dat, včetně obrázků, dokumentů, datových proudů médií a dat archivu. Můžete nahrávat, stahovat a vypisovat objekty BLOB a vytvářet a odstraňovat kontejnery.

Další zdroje informací:

Požadavky

Nastavení

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

Vytvoření projektu

Vytvořte aplikaci v Pythonu s názvem BLOB-Start-V12.

  1. V okně konzoly (například cmd, PowerShell nebo bash) vytvořte nový adresář pro projekt.

    mkdir blob-quickstart-v12
    
  2. Přepněte do nově vytvořeného adresáře pro rychlý Start objektů BLOB-V12 .

    cd blob-quickstart-v12
    
  3. V adresáři objektů BLOB pro rychlý Start – V12 vytvořte další adresář s názvem data. V tomto adresáři se budou vytvářet a ukládat datové soubory objektů BLOB.

    mkdir data
    

Instalace balíčku

ještě pořád v adresáři aplikace nainstalujte knihovnu klienta Azure Blob Storage pro balíček Python pomocí pip install příkazu.

pip install azure-storage-blob

tento příkaz nainstaluje knihovnu klienta Azure Blob Storage pro balíček pythonu a všechny knihovny, na kterých závisí. V tomto případě je to jenom knihovna Azure Core pro Python.

Nastavení aplikační architektury

Z adresáře projektu:

  1. Otevřít nový textový soubor v editoru kódu

  2. Přidat import příkazy

  3. Vytvoření struktury pro program, včetně základního zpracování výjimek

    Zde je kód:

    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)
    
  4. Uložte nový soubor jako BLOB-Quickstart-V12.py do adresáře objektů BLOB-rychlý Start-V12 .

Zkopírování přihlašovacích údajů z webu Azure Portal

Když ukázková aplikace vytvoří požadavek na Azure Storage, musí být autorizována. Pokud chcete požadavek autorizovat, přidejte do aplikace přihlašovací údaje svého účtu úložiště jako připojovací řetězec. Pokud chcete zobrazit přihlašovací údaje účtu úložiště, postupujte takto:

  1. Přihlaste se k webu Azure Portal.

  2. Vyhledejte svůj účet úložiště.

  3. V podokně nabídek účtu úložiště v části Zabezpečení a sítě vyberte Přístupové klíče. Tady můžete zobrazit přístupové klíče účtu a úplný připojovací řetězec pro každý klíč.

    Snímek obrazovky znázorňuje, kde se nachází nastavení přístupového klíče v Azure Portal

  4. V podokně Přístupové klíče vyberte Zobrazit klíče.

  5. V části key1 vyhledejte hodnotu Připojovací řetězec. Vyberte ikonu Zkopírovat do schránky a zkopírujte připojovací řetězec. Hodnotu připojovacího řetězce přidáte do proměnné prostředí v další části.

    Snímek obrazovky ukazující zkopírování připojovacího řetězce z webu Azure Portal

Konfigurace připojovacího řetězce úložiště

Po zkopírování připojovacího řetězce ho zapište do nové proměnné prostředí na místním počítači, na který běží aplikace. Proměnnou prostředí nastavíte tak, že otevřete okno konzoly a budete postupovat podle pokynů pro váš operační systém. Nahraďte <yourconnectionstring> skutečným připojovacím řetězcem.

Windows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Po přidání proměnné prostředí v Windows, je nutné spustit novou instanci příkazového okna.

Linux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Restartování programů

Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou muset proměnnou prostředí přečíst. Před pokračováním například restartujte vývojové prostředí nebo editor.

Objektový model

Azure Blob Storage je optimalizovaná pro ukládání obrovských objemů nestrukturovaných dat. Nestrukturovaná data jsou data, která nevyhovují konkrétnímu datovému modelu nebo definici, jako jsou textová nebo binární data. Úložiště objektů BLOB nabízí tři typy prostředků:

  • Účet úložiště
  • Kontejner v účtu úložiště
  • Objekt BLOB v kontejneru

Na následujícím diagramu jsou vztahy těchto prostředků.

Diagram architektury služby Blob Storage

Pro interakci s těmito prostředky použijte následující třídy Pythonu:

  • BlobServiceClient: BlobServiceClient třída umožňuje manipulovat s Azure Storage prostředky a kontejnery objektů blob.
  • ContainerClient: ContainerClient třída umožňuje manipulovat s kontejnery Azure Storage a jejich objekty blob.
  • BlobClient: BlobClient třída umožňuje manipulovat s objekty blob Azure Storage.

Příklady kódu

tyto ukázkové fragmenty kódu ukazují, jak provádět následující úlohy pomocí klientské knihovny Azure Blob Storage pro Python:

Získání připojovacího řetězce

Následující kód načte připojovací řetězec účtu úložiště z proměnné prostředí vytvořené v oddílu konfigurace vašeho připojovacího řetězce úložiště .

Přidejte tento kód do try bloku:

# 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')

Vytvoření kontejneru

Určete název nového kontejneru. Následující kód připojí hodnotu UUID k názvu kontejneru, aby bylo zajištěno, že je jedinečný.

Důležité

Názvy kontejnerů musí být malými písmeny. Další informace o pojmenování kontejnerů a objektů blob najdete v tématu Názvy kontejnerů, objektů blob a metadat a odkazování na ně.

Vytvořte instanci třídy BlobServiceClient voláním metody from_connection_string . Pak zavolejte metodu create_container , aby se kontejner ve vašem účtu úložiště skutečně vytvořil.

Přidejte tento kód na konec try bloku:

# 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)

Upload objektů blob do kontejneru

Následující fragment kódu:

  1. Vytvoří místní adresář pro ukládání datových souborů.
  2. Vytvoří textový soubor v místním adresáři.
  3. Získá odkaz na objekt BlobClient voláním metody get_blob_client v BlobServiceClient z oddílu vytvoření kontejneru .
  4. Nahraje místní textový soubor do objektu BLOB voláním metody upload_blob .

Přidejte tento kód na konec try bloku:

# 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)

Seznam objektů blob v kontejneru

Vypíše objekty BLOB v kontejneru voláním metody list_blobs . V tomto případě byl do kontejneru přidán pouze jeden objekt blob, takže operace výpisu vrátí pouze jeden objekt BLOB.

Přidejte tento kód na konec try bloku:

print("\nListing blobs...")

# List the blobs in the container
blob_list = container_client.list_blobs()
for blob in blob_list:
    print("\t" + blob.name)

Stáhnout objekty blob

Stáhněte dřív vytvořený objekt BLOB voláním metody download_blob . Vzorový kód přidá příponu "DOWNLOAD" do názvu souboru, aby bylo možné zobrazit oba soubory v místním systému souborů.

Přidejte tento kód na konec try bloku:

# 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())

Odstranění kontejneru

Následující kód vyčistí prostředky, které aplikace vytvořila, odebráním celého kontejneru pomocí metody delete_container . Pokud chcete, můžete také odstranit místní soubory.

Aplikace pozastaví vstup uživatele voláním input() před odstraněním objektu blob, kontejneru a místních souborů. Před odstraněním ověřte, že se prostředky správně vytvořily.

Přidejte tento kód na konec try bloku:

# 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")

Spuštění kódu

Tato aplikace vytvoří testovací soubor v místní složce a nahraje ho do služby Azure Blob Storage. Příklad zobrazí seznam objektů BLOB v kontejneru a stáhne soubor s novým názvem. Můžete porovnat staré a nové soubory.

Přejděte do adresáře obsahujícího soubor BLOB-Quickstart-V12.py a python spuštěním následujícího příkazu spusťte aplikaci.

python blob-quickstart-v12.py

Výstup aplikace je podobný následujícímu příkladu:

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

Než zahájíte proces čištění, vyhledejte ve složce data tyto dva soubory. Můžete je otevřít a sledovat, že jsou identické.

Po ověření souborů stiskněte klávesu ENTER , aby se odstranily soubory testu, a dokončete ukázku.

Další kroky

V tomto rychlém startu jste zjistili, jak nahrávat, stahovat a vypisovat objekty BLOB pomocí Pythonu.

Pokud chcete zobrazit ukázkové aplikace služby Blob Storage, pokračujte: