Rychlý Start: Správa objektů BLOB pomocí sady Python V12 SDKQuickstart: Manage blobs with Python v12 SDK

V tomto rychlém startu se naučíte spravovat objekty BLOB pomocí Pythonu.In this quickstart, you learn to manage blobs by using Python. 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.Blobs are objects that can hold large amounts of text or binary data, including images, documents, streaming media, and archive data. Můžete nahrávat, stahovat a vypisovat objekty BLOB a vytvářet a odstraňovat kontejnery.You'll upload, download, and list blobs, and you'll create and delete containers.

Další zdroje informací:More resources:

PožadavkyPrerequisites

Poznámka

Funkce popsané v tomto článku jsou nyní k dispozici pro účty, které mají hierarchický obor názvů.The features described in this article are now available to accounts that have a hierarchical namespace. Chcete-li zkontrolovat omezení, přečtěte si téma funkce služby Blob Storage dostupné v Azure Data Lake Storage Gen2 článku.To review limitations, see the Blob storage features available in Azure Data Lake Storage Gen2 article.

NastaveníSetting up

Tato část vás provede přípravou projektu pro práci s klientskou knihovnou Azure Blob Storage V12 for Python.This section walks you through preparing a project to work with the Azure Blob Storage client library v12 for Python.

Vytvoření projektuCreate the project

Vytvořte aplikaci v Pythonu s názvem BLOB-Start-V12.Create a Python application named blob-quickstart-v12.

  1. V okně konzoly (například cmd, PowerShell nebo bash) vytvořte nový adresář pro projekt.In a console window (such as cmd, PowerShell, or Bash), create a new directory for the project.

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

    cd blob-quickstart-v12
    
  3. V adresáři objektů BLOB pro rychlý Start – V12 vytvořte další adresář s názvem data.In side the blob-quickstart-v12 directory, create another directory called data. V tomto adresáři se budou vytvářet a ukládat datové soubory objektů BLOB.This directory is where the blob data files will be created and stored.

    mkdir data
    

Instalace balíčkuInstall the package

Ještě pořád v adresáři aplikace nainstalujte knihovnu klienta Azure Blob Storage pro balíček python pomocí pip install příkazu.While still in the application directory, install the Azure Blob Storage client library for Python package by using the pip install command.

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í.This command installs the Azure Blob Storage client library for Python package and all the libraries on which it depends. V tomto případě je to jenom knihovna Azure Core pro Python.In this case, that is just the Azure core library for Python.

Nastavení aplikační architekturySet up the app framework

Z adresáře projektu:From the project directory:

  1. Otevřít nový textový soubor v editoru kóduOpen a new text file in your code editor

  2. Přidat import příkazyAdd import statements

  3. Vytvoření struktury pro program, včetně základního zpracování výjimekCreate the structure for the program, including basic exception handling

    Zde je kód:Here's the code:

    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 .Save the new file as blob-quickstart-v12.py in the blob-quickstart-v12 directory.

Zkopírování přihlašovacích údajů z webu Azure PortalCopy your credentials from the Azure portal

Když ukázková aplikace odešle požadavek na Azure Storage, musí být ověřena.When the sample application makes a request to Azure Storage, it must be authorized. K autorizaci žádosti přidejte do aplikace přihlašovací údaje účtu úložiště jako připojovací řetězec.To authorize a request, add your storage account credentials to the application as a connection string. Přihlašovací údaje účtu úložiště zobrazíte pomocí následujícího postupu:View your storage account credentials by following these steps:

  1. Přihlaste se k portálu Azure Portal.Sign in to the Azure portal.

  2. Vyhledejte svůj účet úložiště.Locate your storage account.

  3. V části Nastavení v přehledu účtu úložiště vyberte Přístupové klíče.In the Settings section of the storage account overview, select Access keys. Tady se zobrazí přístupové klíče vašeho účtu a úplný připojovací řetězec pro jednotlivé klíče.Here, you can view your account access keys and the complete connection string for each key.

  4. V části key1 vyhledejte hodnotu Připojovací řetězec a výběrem tlačítka Kopírovat zkopírujte připojovací řetězec.Find the Connection string value under key1, and select the Copy button to copy the connection string. V dalším kroku přidáte hodnotu připojovacího řetězce do proměnné prostředí.You will add the connection string value to an environment variable in the next step.

    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ěConfigure your storage connection string

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ém aplikaci spouštíte.After you have copied your connection string, write it to a new environment variable on the local machine running the application. Proměnnou prostředí nastavíte tak, že otevřete okno konzoly a budete postupovat podle pokynů pro váš operační systém.To set the environment variable, open a console window, and follow the instructions for your operating system. Nahraďte <yourconnectionstring> skutečným připojovacím řetězcem.Replace <yourconnectionstring> with your actual connection string.

WindowsWindows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Po přidání proměnné prostředí v systému Windows je nutné spustit novou instanci příkazového okna.After you add the environment variable in Windows, you must start a new instance of the command window.

LinuxLinux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOSmacOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Restartovat programyRestart programs

Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou muset číst proměnnou prostředí.After you add the environment variable, restart any running programs that will need to read the environment variable. Před pokračováním například restartujte vývojové prostředí nebo editor.For example, restart your development environment or editor before continuing.

Objektový modelObject model

Azure Blob Storage je optimalizovaná pro ukládání obrovských objemů nestrukturovaných dat.Azure Blob Storage is optimized for storing massive amounts of unstructured data. Nestrukturovaná data jsou data, která nevyhovují konkrétnímu datovému modelu nebo definici, jako jsou textová nebo binární data.Unstructured data is data that doesn't adhere to a particular data model or definition, such as text or binary data. Úložiště objektů BLOB nabízí tři typy prostředků:Blob storage offers three types of resources:

  • Účet úložištěThe storage account
  • Kontejner v účtu úložištěA container in the storage account
  • Objekt BLOB v kontejneruA blob in the container

Na následujícím diagramu jsou vztahy těchto prostředků.The following diagram shows the relationship between these resources.

Diagram architektury služby Blob Storage

Pro interakci s těmito prostředky použijte následující třídy Pythonu:Use the following Python classes to interact with these resources:

  • BlobServiceClient: BlobServiceClient Třída umožňuje manipulovat s Azure Storage prostředky a kontejnery objektů BLOB.BlobServiceClient: The BlobServiceClient class allows you to manipulate Azure Storage resources and blob containers.
  • ContainerClient: ContainerClient Třída umožňuje manipulovat s kontejnery Azure Storage a jejich objekty blob.ContainerClient: The ContainerClient class allows you to manipulate Azure Storage containers and their blobs.
  • BlobClient: BlobClient Třída umožňuje manipulovat s objekty blob Azure Storage.BlobClient: The BlobClient class allows you to manipulate Azure Storage blobs.

Příklady kóduCode examples

Tyto ukázkové fragmenty kódu ukazují, jak provádět následující úlohy pomocí klientské knihovny Azure Blob Storage pro Python:These example code snippets show you how to do the following tasks with the Azure Blob Storage client library for Python:

Získání připojovacího řetězceGet the connection string

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ě .The code below retrieves the storage account connection string from the environment variable created in the Configure your storage connection string section.

Přidejte tento kód do try bloku:Add this code inside the try block:

# 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í kontejneruCreate a container

Určete název nového kontejneru.Decide on a name for the new container. Následující kód připojí hodnotu UUID k názvu kontejneru, aby bylo zajištěno, že je jedinečný.The code below appends a UUID value to the container name to ensure that it's unique.

Důležité

Názvy kontejnerů musí být malými písmeny.Container names must be lowercase. 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ě.For more information about naming containers and blobs, see Naming and Referencing Containers, Blobs, and Metadata.

Vytvořte instanci třídy BlobServiceClient voláním metody from_connection_string .Create an instance of the BlobServiceClient class by calling the from_connection_string method. Pak zavolejte metodu create_container , aby se kontejner ve vašem účtu úložiště skutečně vytvořil.Then, call the create_container method to actually create the container in your storage account.

Přidejte tento kód na konec try bloku:Add this code to the end of the try block:

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

Nahrání objektů blob do kontejneruUpload blobs to a container

Následující fragment kódu:The following code snippet:

  1. Vytvoří místní adresář pro ukládání datových souborů.Creates a local directory to hold data files.
  2. Vytvoří textový soubor v místním adresáři.Creates a text file in the local directory.
  3. Získá odkaz na objekt BlobClient voláním metody get_blob_client v BlobServiceClient z oddílu vytvoření kontejneru .Gets a reference to a BlobClient object by calling the get_blob_client method on the BlobServiceClient from the Create a container section.
  4. Nahraje místní textový soubor do objektu BLOB voláním metody upload_blob .Uploads the local text file to the blob by calling the upload_blob method.

Přidejte tento kód na konec try bloku:Add this code to the end of the try block:

# 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 kontejneruList the blobs in a container

Vypíše objekty BLOB v kontejneru voláním metody list_blobs .List the blobs in the container by calling the list_blobs method. 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.In this case, only one blob has been added to the container, so the listing operation returns just that one blob.

Přidejte tento kód na konec try bloku:Add this code to the end of the try block:

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 blobDownload blobs

Stáhněte dřív vytvořený objekt BLOB voláním metody download_blob .Download the previously created blob by calling the download_blob method. 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ů.The example code adds a suffix of "DOWNLOAD" to the file name so that you can see both files in local file system.

Přidejte tento kód na konec try bloku:Add this code to the end of the try block:

# 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í kontejneruDelete a container

Následující kód vyčistí prostředky, které aplikace vytvořila, odebráním celého kontejneru pomocí metody delete_container .The following code cleans up the resources the app created by removing the entire container using the delete_container method. Pokud chcete, můžete také odstranit místní soubory.You can also delete the local files, if you like.

Aplikace pozastaví vstup uživatele voláním input() před odstraněním objektu blob, kontejneru a místních souborů.The app pauses for user input by calling input() before it deletes the blob, container, and local files. Před odstraněním ověřte, že se prostředky správně vytvořily.Verify that the resources were created correctly, before they're deleted.

Přidejte tento kód na konec try bloku:Add this code to the end of the try block:

# 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óduRun the code

Tato aplikace vytvoří testovací soubor v místní složce a nahraje ho do služby Azure Blob Storage.This app creates a test file in your local folder and uploads it to Azure Blob Storage. Příklad zobrazí seznam objektů BLOB v kontejneru a stáhne soubor s novým názvem.The example then lists the blobs in the container, and downloads the file with a new name. Můžete porovnat staré a nové soubory.You can compare the old and new files.

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.Navigate to the directory containing the blob-quickstart-v12.py file, then execute the following python command to run the app.

python blob-quickstart-v12.py

Výstup aplikace je podobný následujícímu příkladu:The output of the app is similar to the following example:

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.Before you begin the cleanup process, check your data folder for the two files. Můžete je otevřít a sledovat, že jsou identické.You can open them and observe that they're identical.

Po ověření souborů stiskněte klávesu ENTER , aby se odstranily soubory testu, a dokončete ukázku.After you've verified the files, press the Enter key to delete the test files and finish the demo.

Další krokyNext steps

V tomto rychlém startu jste zjistili, jak nahrávat, stahovat a vypisovat objekty BLOB pomocí Pythonu.In this quickstart, you learned how to upload, download, and list blobs using Python.

Pokud chcete zobrazit ukázkové aplikace služby Blob Storage, pokračujte:To see Blob storage sample apps, continue to: