Snabbstart: Hantera blobar med Python v12 SDK

I den här snabbstarten lär du dig att hantera blobar med hjälp av Python. Blobar är objekt som kan innehålla stora mängder text eller binära data, inklusive bilder, dokument, strömmande media och arkivdata. Du laddar upp, laddar ned och listar blobar och skapar och tar bort containrar.

Fler resurser:

Förutsättningar

Inrätta

Det här avsnittet går igenom hur du förbereder ett projekt för att arbeta med Azure Blob Storage-klientbiblioteket v12 för Python.

Skapa projektet

Skapa ett Python-program med namnet blob-quickstart-v12.

  1. I ett konsolfönster (till exempel cmd, PowerShell eller Bash) skapar du en ny katalog för projektet.

    mkdir blob-quickstart-v12
    
  2. Växla till den nyligen skapade katalogen blob-quickstart-v12.

    cd blob-quickstart-v12
    
  3. På sidan blob-quickstart-v12-katalogen skapar du en annan katalog med namnet data. I den här katalogen skapas och lagras blobdatafilerna.

    mkdir data
    

Installera paketet

När du fortfarande är i programkatalogen installerar du Azure Blob Storage-klientbiblioteket för Python-paketet med hjälp av pip install kommandot .

pip install azure-storage-blob

Det här kommandot installerar Azure Blob Storage-klientbiblioteket för Python-paketet och alla bibliotek som det är beroende av. I det här fallet är det bara Azure-kärnbiblioteket för Python.

Konfigurera appramverket

Från projektkatalogen:

  1. Öppna en ny textfil i kodredigeraren

  2. Lägg till import instruktioner

  3. Skapa strukturen för programmet, inklusive grundläggande undantagshantering

    Här är koden:

    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. Spara den nya filen blob-quickstart-v12.py i katalogen blob-quickstart-v12.

Kopiera dina autentiseringsuppgifter från Azure-portalen

När exempelprogrammet gör en begäran till Azure Storage måste det auktoriserats. Om du vill auktorisera en begäran lägger du till autentiseringsuppgifterna för ditt lagringskonto i programmet som en anslutningssträng. Följ dessa steg om du vill visa autentiseringsuppgifterna för ditt lagringskonto:

  1. Logga in på Azure-portalen.

  2. Leta rätt på ditt lagringskonto.

  3. I menyfönstret för lagringskontot går du till Säkerhet + nätverk och väljer Åtkomstnycklar. Här kan du visa kontoåtkomstnycklarna och den fullständiga anslutningssträngen för varje nyckel.

    Skärmbild som visar var inställningarna för åtkomstnyckeln finns i Azure Portal

  4. I fönstret Åtkomstnycklar väljer du Visa nycklar.

  5. Leta upp värdet för Anslutningssträng i avsnittet key1. Välj ikonen Kopiera till Urklipp för att kopiera anslutningssträngen. Du lägger till anslutningssträngens värde i en miljövariabel i nästa avsnitt.

    Skärmbild som visar hur man kopierar en anslutningssträng från Azure-portalen

Konfigurera anslutningssträngen för lagring

När du har kopierat anslutningssträngen skriver du den till en ny miljövariabel på den lokala dator som kör programmet. Konfigurera miljövariabeln genom att öppna ett konsolfönster och följa anvisningarna för ditt operativsystem. Ersätt <yourconnectionstring> med den faktiska anslutningssträngen.

Windows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

När du har lagt till miljövariabeln i Windows måste du starta en ny instans av kommandofönstret.

Linux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Starta om program

När du har lagt till miljövariabeln startar du om alla program som körs och behöver läsa miljövariabeln. Du kan till exempel starta om utvecklingsmiljön eller redigeringsredigeraren innan du fortsätter.

Objektmodell

Azure Blob Storage är optimerad för att lagra stora mängder ostrukturerade data. Ostrukturerade data är data som inte följer en viss datamodell eller definition, till exempel text eller binära data. I blobblagringen finns tre typer av resurser:

  • Lagringskontot
  • En container på lagringskontot
  • En blob i containern

Följande diagram visar relationen mellan de här resurserna.

Diagram över blobblagringens arkitektur

Använd följande Python-klasser för att interagera med dessa resurser:

  • BlobServiceClient:Med BlobServiceClient klassen kan du ändra Azure Storage och blobcontainrar.
  • ContainerClient:Med ContainerClient klassen kan du ändra Azure Storage och deras blobar.
  • BlobClient:Med BlobClient klassen kan du ändra Azure Storage blobar.

Kodexempel

De här exempelkodfragmenten visar hur du utför följande uppgifter med Azure Blob Storage-klientbiblioteket för Python:

Hämta anslutningssträngen

Koden nedan hämtar anslutningssträngen för lagringskontot från miljövariabeln som skapades i avsnittet Konfigurera lagringsanslutningssträngen.

Lägg till den här koden i try blocket:

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

Skapa en container

Bestäm ett namn för den nya containern. Koden nedan lägger till ett UUID-värde i containernamnet för att säkerställa att det är unikt.

Viktigt

Containernamn måste använda gemener. Mer information om namngivning av containrar och blobar finns i Namngivning och referens av containrar, blobar och metadata.

Skapa en instans av klassen BlobServiceClient genom att anropa from_connection_string metoden. Anropa sedan create_container för att skapa containern i ditt lagringskonto.

Lägg till den här koden i slutet av try blocket:

# 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 blobar till en container

Följande kodfragment:

  1. Skapar en lokal katalog för att lagra datafiler.
  2. Skapar en textfil i den lokala katalogen.
  3. Hämtar en referens till ett BlobClient-objekt genom att anropa get_blob_client-metoden i BlobServiceClient från avsnittet Skapa en container.
  4. Laddar upp den lokala textfilen till bloben genom att anropa upload_blob-metoden.

Lägg till den här koden i slutet av try blocket:

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

Visa blobar i en container

Visa en lista över blobarna i containern genom att anropa list_blobs-metoden. I det här fallet har endast en blob lagts till i containern, så liståtgärden returnerar bara den bloben.

Lägg till den här koden i slutet av try blocket:

print("\nListing blobs...")

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

Ladda ned blobbar

Ladda ned den tidigare skapade bloben genom att anropa download_blob-metoden. Exempelkoden lägger till suffixet "DOWNLOAD" i filnamnet så att du kan se båda filerna i det lokala filsystemet.

Lägg till den här koden i slutet av try blocket:

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

Ta bort en container

Följande kod rensar de resurser som appen skapade genom att ta bort hela containern med hjälp delete_container metoden. Du kan också ta bort de lokala filerna om du vill.

Appen pausar för användarindata genom att input() anropa innan den tar bort bloben, containern och lokala filer. Kontrollera att resurserna har skapats korrekt innan de tas bort.

Lägg till den här koden i slutet av try blocket:

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

Kör koden

Den här appen skapar en testfil i din lokala mapp och laddar upp den till Azure Blob Storage. Exemplet visar sedan blobarna i containern och laddar ned filen med ett nytt namn. Du kan jämföra de gamla och nya filerna.

Gå till katalogen som innehåller blob-quickstart-v12.py och kör sedan följande python kommando för att köra appen.

python blob-quickstart-v12.py

Appens utdata liknar följande exempel:

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

Innan du påbörjar rensningsprocessen kontrollerar du datamappen för de två filerna. Du kan öppna dem och se att de är identiska.

När du har verifierat filerna trycker du på Retur för att ta bort testfilerna och avsluta demonstrationen.

Nästa steg

I den här snabbstarten har du lärt dig hur du laddar upp, laddar ned och listar blobar med Python.

Om du vill se Blob Storage-exempelappar fortsätter du till: