Szybki Start: Zarządzanie obiektami BLOB za pomocą zestawu SDK V12 języka PythonQuickstart: Manage blobs with Python v12 SDK

W tym przewodniku szybki start nauczysz się zarządzać obiektami BLOB przy użyciu języka Python.In this quickstart, you learn to manage blobs by using Python. Obiekty blob są obiektami, które mogą przechowywać duże ilości danych tekstowych lub binarnych, w tym obrazy, dokumenty, multimedia strumieniowe i dane archiwalne.Blobs are objects that can hold large amounts of text or binary data, including images, documents, streaming media, and archive data. Będziesz przekazywać, pobierać i wyświetlać listy obiektów blob, a następnie tworzyć i usuwać kontenery.You'll upload, download, and list blobs, and you'll create and delete containers.

Dodatkowe zasoby:Additional resources:

Wymagania wstępnePrerequisites

Uwaga

Funkcje opisane w tym artykule są teraz dostępne dla kont, które mają hierarchiczną przestrzeń nazw.The features described in this article are now available to accounts that have a hierarchical namespace. Aby zapoznać się z ograniczeniami, zobacz funkcje magazynu obiektów BLOB dostępne w Azure Data Lake Storage Gen2 artykule.To review limitations, see the Blob storage features available in Azure Data Lake Storage Gen2 article.

KonfigurowanieSetting up

W tej sekcji omówiono przygotowanie projektu do pracy z biblioteką klienta usługi Azure Blob Storage V12 dla języka Python.This section walks you through preparing a project to work with the Azure Blob storage client library v12 for Python.

Tworzenie projektuCreate the project

Tworzenie aplikacji w języku Python o nazwie BLOB-Start-V12.Create a Python application named blob-quickstart-v12.

  1. W oknie konsoli (na przykład cmd, PowerShell lub bash) Utwórz nowy katalog dla projektu.In a console window (such as cmd, PowerShell, or Bash), create a new directory for the project.

    mkdir blob-quickstart-v12
    
  2. Przejdź do nowo utworzonego katalogu obiektów BLOB — szybki start-V12 .Switch to the newly created blob-quickstart-v12 directory.

    cd blob-quickstart-v12
    
  3. W obszarze obiekt BLOB — szybki start V12 katalog Utwórz inny katalog o nazwie dane.In side the blob-quickstart-v12 directory, create another directory called data. Jest to miejsce, w którym są tworzone i przechowywane pliki danych obiektów BLOB.This is where the blob data files will be created and stored.

    mkdir data
    

Zainstaluj pakietInstall the package

Mimo że w katalogu aplikacji, zainstaluj bibliotekę klienta usługi Azure Blob Storage dla pakietu języka Python za pomocą pip install polecenia.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

To polecenie powoduje zainstalowanie biblioteki klienta usługi Azure Blob Storage dla pakietu języka Python i wszystkich bibliotek, od których jest ona zależna.This command installs the Azure Blob storage client library for Python package and all the libraries on which it depends. W tym przypadku jest to tylko podstawowa Biblioteka platformy Azure dla języka Python.In this case, that is just the Azure core library for Python.

Konfigurowanie struktury aplikacjiSet up the app framework

Z katalogu projektu:From the project directory:

  1. Otwórz nowy plik tekstowy w edytorze koduOpen a new text file in your code editor

  2. Dodaj import instrukcjeAdd import statements

  3. Utwórz strukturę dla programu, w tym podstawową obsługę wyjątkówCreate the structure for the program, including basic exception handling

    Oto kod: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. Zapisz nowy plik jako BLOB-QuickStart-V12.py w katalogu BLOB-Start-V12 .Save the new file as blob-quickstart-v12.py in the blob-quickstart-v12 directory.

Kopiowanie poświadczeń z witryny Azure PortalCopy your credentials from the Azure portal

Gdy aplikacja Przykładowa wysyła żądanie do usługi Azure Storage, musi mieć autoryzację.When the sample application makes a request to Azure Storage, it must be authorized. Aby autoryzować żądanie, Dodaj poświadczenia konta magazynu do aplikacji jako parametry połączenia.To authorize a request, add your storage account credentials to the application as a connection string. Wyświetl poświadczenia konta magazynu, wykonując następujące czynności:View your storage account credentials by following these steps:

  1. Zaloguj się w witrynie Azure Portal.Sign in to the Azure portal.

  2. Odszukaj konto magazynu.Locate your storage account.

  3. W sekcji Ustawienia omówienia kont magazynu wybierz pozycję Klucze dostępu.In the Settings section of the storage account overview, select Access keys. W tym miejscu możesz przeglądać klucze dostępu do konta oraz pełne parametry połączenia dla każdego klucza.Here, you can view your account access keys and the complete connection string for each key.

  4. Znajdź wartość Parametry połączenia w obszarze key1 i wybierz przycisk Kopiuj, aby skopiować parametry połączenia.Find the Connection string value under key1, and select the Copy button to copy the connection string. W następnym kroku dodasz wartość parametrów połączenia do zmiennej środowiskowej.You will add the connection string value to an environment variable in the next step.

    Zrzut ekranu pokazujący sposób kopiowania parametrów połączenia z witryny Azure Portal

Konfigurowanie parametrów połączenia magazynuConfigure your storage connection string

Po skopiowaniu parametrów połączenia zapisz je w nowej zmiennej środowiskowej na komputerze, na którym uruchomiona jest aplikacja.After you have copied your connection string, write it to a new environment variable on the local machine running the application. Aby ustawić zmienną środowiskową, otwórz okno konsoli i postępuj zgodnie z instrukcjami dla systemu operacyjnego.To set the environment variable, open a console window, and follow the instructions for your operating system. Zamień <yourconnectionstring> na rzeczywiste parametry połączenia.Replace <yourconnectionstring> with your actual connection string.

WindowsWindows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Po dodaniu zmiennej środowiskowej w systemie Windows należy uruchomić nowe wystąpienie okna polecenia.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>"

Uruchom ponownie programyRestart programs

Po dodaniu zmiennej środowiskowej Uruchom ponownie wszystkie uruchomione programy, które będą wymagały odczytania zmiennej środowiskowej.After you add the environment variable, restart any running programs that will need to read the environment variable. Na przykład przed kontynuowaniem Uruchom ponownie środowisko programistyczne lub Edytor.For example, restart your development environment or editor before continuing.

Model obiektówObject model

Usługa Azure Blob Storage jest zoptymalizowana pod kątem przechowywania dużych ilości danych bez struktury.Azure Blob storage is optimized for storing massive amounts of unstructured data. Dane bez struktury są danymi, które nie są zgodne z żadnym modelem lub definicją danych, jak na przykład dane tekstowe lub binarne.Unstructured data is data that does not adhere to a particular data model or definition, such as text or binary data. Magazyn obiektów blob oferuje trzy typy zasobów:Blob storage offers three types of resources:

  • Konto magazynuThe storage account
  • Kontener na koncie magazynuA container in the storage account
  • Obiekt BLOB w kontenerzeA blob in the container

Na poniższym diagramie przedstawiono relacje między tymi zasobami.The following diagram shows the relationship between these resources.

Diagram architektury magazynu obiektów blob

Użyj następujących klas języka Python do korzystania z tych zasobów:Use the following Python classes to interact with these resources:

  • BlobServiceClient: BlobServiceClient Klasa umożliwia manipulowanie zasobami usługi Azure Storage i kontenerami obiektów BLOB.BlobServiceClient: The BlobServiceClient class allows you to manipulate Azure Storage resources and blob containers.
  • ContainerClient: ContainerClient Klasa umożliwia manipulowanie kontenerami usługi Azure Storage i ich obiektami BLOB.ContainerClient: The ContainerClient class allows you to manipulate Azure Storage containers and their blobs.
  • BlobClient: BlobClient Klasa umożliwia manipulowanie obiektami BLOB usługi Azure Storage.BlobClient: The BlobClient class allows you to manipulate Azure Storage blobs.

Przykłady koduCode examples

Te przykładowe fragmenty kodu pokazują, jak wykonać następujące czynności za pomocą biblioteki klienckiej usługi Azure Blob Storage dla języka Python:These example code snippets show you how to perform the following with the Azure Blob storage client library for Python:

Pobieranie parametrów połączeniaGet the connection string

Poniższy kod pobiera parametry połączenia dla konta magazynu ze zmiennej środowiskowej utworzonej w sekcji Konfigurowanie parametrów połączenia magazynu .The code below retrieves the connection string for the storage account from the environment variable created in the Configure your storage connection string section.

Dodaj ten kod wewnątrz 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')

Tworzenie konteneraCreate a container

Określ nazwę nowego kontenera.Decide on a name for the new container. Poniższy kod dołącza wartość identyfikatora UUID do nazwy kontenera, aby upewnić się, że jest ona unikatowa.The code below appends a UUID value to the container name to ensure that it is unique.

Ważne

Nazwy kontenerów muszą być zapisane małymi literami.Container names must be lowercase. Aby uzyskać więcej informacji o nazewnictwie kontenerów i obiektów blob, zobacz temat Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych.For more information about naming containers and blobs, see Naming and Referencing Containers, Blobs, and Metadata.

Utwórz wystąpienie klasy BlobServiceClient przez wywołanie metody from_connection_string .Create an instance of the BlobServiceClient class by calling the from_connection_string method. Następnie Wywołaj metodę create_container , aby faktycznie utworzyć kontener na koncie magazynu.Then, call the create_container method to actually create the container in your storage account.

Dodaj ten kod na końcu 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 = "quickstart" + str(uuid.uuid4())

# Create the container
container_client = blob_service_client.create_container(container_name)

Przekazywanie obiektów BLOB do konteneraUpload blobs to a container

Następujący fragment kodu:The following code snippet:

  1. Tworzy plik tekstowy w katalogu lokalnym.Creates a text file in the local directory.
  2. Pobiera odwołanie do obiektu BlobClient przez wywołanie metody get_blob_client na BlobServiceClient z sekcji Create a Container .Gets a reference to a BlobClient object by calling the get_blob_client method on the BlobServiceClient from the Create a container section.
  3. Przekazuje lokalny plik tekstowy do obiektu BLOB, wywołując metodę upload_blob .Uploads the local text file to the blob by calling the upload_blob method.

Dodaj ten kod na końcu try bloku:Add this code to the end of the try block:

# Create a file in local data directory to upload and download
local_path = "./data"
local_file_name = "quickstart" + 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)

Wyświetlanie listy obiektów blob w kontenerzeList the blobs in a container

Utwórz listę obiektów BLOB w kontenerze, wywołując metodę list_blobs .List the blobs in the container by calling the list_blobs method. W takim przypadku tylko jeden obiekt BLOB został dodany do kontenera, więc operacja tworzenia listy zwraca tylko jeden obiekt BLOB.In this case, only one blob has been added to the container, so the listing operation returns just that one blob.

Dodaj ten kod na końcu 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)

Pobieranie obiektów blobDownload blobs

Pobierz utworzony wcześniej obiekt BLOB, wywołując metodę download_blob .Download the previously created blob by calling the download_blob method. Przykładowy kod dodaje sufiks "DOWNLOAD" do nazwy pliku, aby można było zobaczyć oba pliki w lokalnym systemie plików.The example code adds a suffix of "DOWNLOAD" to the file name so that you can see both files in local file system.

Dodaj ten kod na końcu 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())

Usuwanie konteneraDelete a container

Poniższy kod czyści zasoby utworzone przez aplikację przez usunięcie całego kontenera przy użyciu metody delete_container .The following code cleans up the resources the app created by removing the entire container using the delete_container method. Możesz również usunąć pliki lokalne, jeśli chcesz.You can also delete the local files, if you like.

Aplikacja wstrzymuje się do wprowadzania danych przez użytkownika input() , wywołując przed usunięciem obiektu BLOB, kontenera i plików lokalnych.The app pauses for user input by calling input() before it deletes the blob, container, and local files. Jest to dobry szansa, aby sprawdzić, czy zasoby zostały utworzone prawidłowo, przed ich usunięciem.This is a good chance to verify that the resources were created correctly, before they are deleted.

Dodaj ten kod na końcu 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)

print("Done")

Uruchamianie koduRun the code

Ta aplikacja tworzy plik testowy w folderze lokalnym i przekazuje go do magazynu obiektów BLOB.This app creates a test file in your local folder and uploads it to Blob storage. Przykład następnie wyświetla listę obiektów BLOB w kontenerze i pobiera plik z nową nazwą, aby można było porównać stare i nowe pliki.The example then lists the blobs in the container and downloads the file with a new name so that you can compare the old and new files.

Przejdź do katalogu zawierającego plik BLOB-QuickStart-V12.py , a następnie wykonaj następujące polecenie, python Aby uruchomić aplikację.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

Dane wyjściowe aplikacji są podobne do następujących: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

Przed rozpoczęciem procesu oczyszczania Sprawdź, czy w folderze danych są dwa pliki.Before you begin the clean up process, check your data folder for the two files. Możesz je otworzyć i sprawdzić, czy są identyczne.You can open them and observe that they are identical.

Po zweryfikowaniu plików naciśnij klawisz Enter , aby usunąć pliki testowe i zakończyć demonstrację.After you've verified the files, press the Enter key to delete the test files and finish the demo.

Następne krokiNext steps

W tym przewodniku szybki start przedstawiono sposób przekazywania, pobierania i wyświetlania listy obiektów BLOB za pomocą języka Python.In this quickstart, you learned how to upload, download, and list blobs using Python.

Aby wyświetlić przykładowe aplikacje dla magazynu obiektów blob, przejdź do:To see Blob storage sample apps, continue to: