Quickstart: Blobs beheren met Python v12 SDK
In deze quickstart leert u hoe u blobs beheert met behulp van Python. Blobs zijn objecten die grote hoeveelheden tekst of binaire gegevens kunnen bevatten, zoals afbeeldingen, documenten, streaming media en archiefgegevens. U kunt blob, downloaden uploaden en weergeven en u kunt containers maken en verwijderen.
Meer resources:
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een Azure Storage-account. Een opslagaccount maken.
- Python 2.7 of 3.6+.
Instellen
In deze sectie wordt beschreven hoe u een project voorbereidt voor gebruik met de Azure Blob Storage-clientbibliotheek v12 voor Python.
Het project maken
Maak een Python-toepassing met de naam blob-quickstart-v12.
Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor het project.
mkdir blob-quickstart-v12Schakel over naar de zojuist gemaakte map blob-quickstart-v12.
cd blob-quickstart-v12Maak een andere map met de naam gegevens aan in de map blob-quickstart-v12. In deze map worden de blobgegevensbestanden gemaakt en opgeslagen.
mkdir data
Het pakket installeren
Terwijl u zich nog in de toepassingsmap blijft, installeert u de Azure Blob Storage-clientbibliotheek voor het Python-pakket met behulp van de pip install opdracht .
pip install azure-storage-blob
Met deze opdracht installeert u het pakket Azure Blob Storage-clientbibliotheek voor Python en alle bibliotheken waarvan het afhankelijk is. In dit geval is dat alleen de Azure-kernbibliotheek voor Python.
Het app-framework instellen
Ga als volgt te werk vanuit de projectmap:
Open een nieuw tekstbestand in uw code-editor
Voeg
import-instructies toeMaak de structuur voor het programma, waaronder eenvoudige afhandeling van uitzonderingen
Hier volgt de 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)Sla het nieuwe bestand op als blob-quickstart-v12.py in de map blob-quickstart-v12.
Kopieer uw referenties van de Azure Portal
Wanneer met de voorbeeldtoepassing een aanvraag wordt ingediend bij Azure Storage, moet deze aanvraag worden geautoriseerd. Om een aanvraag te autoriseren voegt u de referenties van uw opslagaccount toe als een verbindingsreeks. Volg deze stappen om uw opslagaccountreferenties te bekijken:
Meld u aan bij Azure Portal.
Zoek uw opslagaccount.
Selecteer in het menudeelvenster van het opslagaccount onder Beveiliging en netwerken de optie Toegangssleutels. Hier kunt u de toegangssleutels voor het account en de volledige connection string voor elke sleutel weergeven.

Selecteer sleutels weergeven in het deelvenster Toegangssleutels.
Zoek in de sectie key1 de waarde van de verbindingsreeks. Selecteer het pictogram Kopiëren naar klembord om de connection string. In de volgende sectie voegt connection string waarde toe aan een omgevingsvariabele.

De opslagverbindingsreeks configureren
Nadat u de connection string, schrijft u deze naar een nieuwe omgevingsvariabele op de lokale computer met de toepassing. Als u de omgevingsvariabele wilt instellen, opent u een consolevenster en volgt u de aanwijzingen voor uw besturingssysteem. Vervang <yourconnectionstring> door de feitelijke verbindingsreeks.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Nadat u de omgevingsvariabele in Windows hebt toegevoegd, moet u een nieuw exemplaar van het opdrachtvenster starten.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Programma's opnieuw opstarten
Nadat u de omgevingsvariabele hebt toegevoegd, start u actieve programma's die de omgevingsvariabele moeten lezen, opnieuw. Start bijvoorbeeld uw ontwikkelomgeving of editor opnieuw op voordat u doorgaat.
Objectmodel
Azure Blob Storage is geoptimaliseerd voor het opslaan van grote hoeveelheden ongestructureerde gegevens. Ongestructureerde gegevens zijn gegevens die niet voldoen aan een bepaald gegevensmodel of bepaalde definitie, zoals tekst of binaire gegevens. Er zijn drie typen resources voor blobopslag:
- Het opslagaccount
- Een container in het opslagaccount
- Een blob in de container
Het volgende diagram geeft de relatie tussen deze resources weer.

Gebruik de volgende Python-klassen om te communiceren met deze resources:
- BlobServiceClient: Met de klasse
BlobServiceClientkunt u Azure Storage-resources en blob-containers bewerken. - ContainerClient: Met de klasse
ContainerClientkunt u Azure Storage-containers en de bijbehorende blobs bewerken. - BlobClient: Met de klasse
BlobClientkunt u Azure Storage-blobs bewerken.
Codevoorbeelden
Deze voorbeeldcodefragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Azure Blob Storage-clientbibliotheek voor Python:
- De verbindingsreeks ophalen
- Een container maken
- Blobs uploaden naar een container
- De blobs in een container weergeven
- Blobs downloaden
- Container verwijderen
De verbindingsreeks ophalen
Met de onderstaande code worden de opslagaccountgegevens opgehaald connection string de omgevingsvariabele die is gemaakt in de sectie Uw opslagaccount connection string configureren.
Voeg deze code toe in het try-blok:
# 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')
Een container maken
Verzin een naam voor de nieuwe container. Met de onderstaande code wordt een UUID-waarde aan de containernaam toevoegen om ervoor te zorgen dat deze uniek is.
Belangrijk
Containernamen moeten uit kleine letters bestaan. Zie Containers, blobs en metagegevens een naam geven en hiernaar verwijderen voor meer informatie over de naamgeving van containers en blobs.
Maak een instantie van de klasse BlobServiceClient door de methode from_connection_string aan te roepen. Roep vervolgens de methode create_container aan om de container in uw opslagaccount te maken.
Voeg deze code toe aan het einde van het try-blok:
# 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)
Blobs uploaden naar een container
Het volgende codefragment:
- Hiermee maakt u een lokale map voor het opslaan van gegevensbestanden.
- Hiermee maakt u een tekstbestand aan in de lokale map.
- Hiermee wordt een verwijzing naar een BlobClient-object opgehaald door de methode get_blob_client te gebruiken op de BlobServiceClient van het gedeelte Een container maken.
- Hiermee wordt het lokale tekstbestand geüpload naar de blob door de methode upload_blob aan te roepen.
Voeg deze code toe aan het einde van het try-blok:
# 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)
De blobs in een container in een lijst weergeven
Geeft de blobs in de container weer door de methode list_blobs aan te roepen. In dit geval is slechts één blob aan de container toegevoegd, zodat met de weergavebewerking alleen die ene blob wordt geretourneerd.
Voeg deze code toe aan het einde van het try-blok:
print("\nListing blobs...")
# List the blobs in the container
blob_list = container_client.list_blobs()
for blob in blob_list:
print("\t" + blob.name)
Blobs downloaden
Download de eerder gemaakte blob door de methode download_blob aan te roepen. De voorbeeldcode voegt het achtervoegsel 'DOWNLOAD' toe aan de naam van het bestand, zodat u beide bestanden in het lokale bestandssysteem kunt zien.
Voeg deze code toe aan het einde van het try-blok:
# 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())
Een container verwijderen
De volgende code ruimt de resources die door de app zijn gemaakt op door de hele container te verwijderen met behulp van de methode delete_container. U kunt ook de lokale bestanden verwijderen als u dat wilt.
De app pauzeert voor gebruikersinvoer door input() aan te roepen voordat deze de blob, container en lokale bestanden verwijdert. Controleer of de resources correct zijn gemaakt voordat ze worden verwijderd.
Voeg deze code toe aan het einde van het try-blok:
# 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")
De code uitvoeren
Deze app maakt een testbestand in uw lokale map en uploadt het naar Azure Blob Storage. In het voorbeeld worden vervolgens de blobs in de container vermeld en wordt het bestand met een nieuwe naam gedownload. U kunt de oude en nieuwe bestanden vergelijken.
Navigeer naar de map die het bestand blob-quickstart-v12.py bevat, en voer vervolgens de volgende python-opdracht uit om de app uit te voeren.
python blob-quickstart-v12.py
De uitvoer van de app lijkt op die in het volgende voorbeeld:
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
Voordat u begint met het opschonen, controleert u de gegevensmap op de twee bestanden. U kunt ze openen en zien dat ze identiek zijn.
Nadat u de bestanden hebt gecontroleerd, drukt u op Enter om de testbestanden te verwijderen en het voorbeeld te voltooien.
Volgende stappen
In deze snelstart hebt u geleerd hoe u blobs kunt uploaden, downloaden en er een lijst van maken met behulp van Python.
Als u voorbeeld-apps voor Blob-opslag wilt zien, ga dan naar:
- Zie de Azure Storage-clientbibliotheken voor Python voor meer informatie.
- Ga naar Azure voor Python-ontwikkelaars voor zelfstudies, voorbeelden, quickstarts en andere documentatie.