Schnellstart: Hochladen, Herunterladen und Auflisten von Blobs mit PythonQuickstart: Upload, download, and list blobs with Python

In dieser Schnellstartanleitung erfahren Sie, wie Sie mit Python Blockblobs in einem Container in Azure Blob Storage hochladen, herunterladen und auflisten.In this quickstart, you see how to use Python to upload, download, and list block blobs in a container in Azure Blob storage. Bei Blobs handelt es sich lediglich um Objekte, die eine beliebige Menge an Text oder binären Daten (z. B. Bilder, Dokumente, Streamingmedien, Archivdaten usw.) enthalten und die in Azure Storage getrennt von Dateifreigaben, schemalosen Tabellen und Nachrichtenwarteschlangen vorliegen.Blobs are simply objects that can hold any amount of text or binary data (such as images, documents, streaming media, archive data, etc.), and are distinct in Azure Storage from file shares, schemaless tables, and message queues. (Weitere Informationen finden Sie unter Einführung in Azure Storage.)(For more information, see Introduction to Azure Storage.)

VoraussetzungenPrerequisites

Sie benötigen ein Azure-Abonnement, um auf Azure Storage zuzugreifen.To access Azure Storage, you'll need an Azure subscription. Wenn Sie noch kein Abonnement haben, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't already have a subscription, then create a free account before you begin.

Der gesamte Zugriff auf Azure Storage erfolgt über ein Speicherkonto.All access to Azure Storage takes place through a storage account. Für diesen Schnellstart erstellen Sie über das Azure-Portal mithilfe von Azure PowerShell oder über die Azure-Befehlszeilenschnittstelle ein Speicherkonto.For this quickstart, create a storage account using the Azure portal, Azure PowerShell, or Azure CLI. Hilfe zur Erstellung des Kontos finden Sie unter Erstellen eines Speicherkontos.For help creating the account, see Create a storage account.

Stellen Sie sicher, dass die folgenden zusätzlichen Komponenten installiert sind:Make sure you have the following additional prerequisites installed:

Herunterladen der BeispielanwendungDownload the sample application

In dieser Schnellstartanleitung wird als Beispielanwendung eine einfache Python-Anwendung verwendet.The sample application in this quickstart is a basic Python application.

Verwenden Sie Git, um eine Kopie der Anwendung in Ihre Entwicklungsumgebung herunterzuladen.Use git to download a copy of the application to your development environment.

git clone https://github.com/Azure-Samples/storage-blobs-python-quickstart.git 

Dieser Befehl klont das Repository Azure-Samples/storage-blobs-python-quickstart in Ihrem lokalen Git-Ordner.This command clones the Azure-Samples/storage-blobs-python-quickstart repository to your local git folder. Öffnen Sie zum Ausführen des Python-Programms die Datei example.py im Stammverzeichnis des Repositorys.To run the Python program, open the example.py file at the root of the repository.

Kopieren Ihrer Anmeldeinformationen aus dem Azure-PortalCopy your credentials from the Azure portal

Die Beispielanwendung muss den Zugriff auf Ihr Speicherkonto autorisieren.The sample application needs to authorize access to your storage account. Stellen Sie der Anwendung die Anmeldeinformationen für Ihr Speicherkonto in Form einer Verbindungszeichenfolge bereit.Provide your storage account credentials to the application in the form of a connection string. So zeigen Sie die Anmeldeinformationen für Ihr Speicherkonto an:To view your storage account credentials:

  1. Navigieren Sie zum Azure-Portal.Navigate to the Azure portal.

  2. Suchen Sie nach Ihrem Speicherkonto.Locate your storage account.

  3. Wählen Sie im Abschnitt Einstellungen der Speicherkontoübersicht die Option Zugriffsschlüssel.In the Settings section of the storage account overview, select Access keys. Die Zugriffsschlüssel und die Verbindungszeichenfolge des Kontos werden angezeigt.Your account access keys and connection string are displayed.

  4. Notieren Sie sich den Namen Ihres Speicherkontos. Sie benötigen ihn zur Autorisierung.Note the name of your storage account, which you'll need for authorization.

  5. Suchen Sie unter key1 nach dem Wert für Schlüssel, und klicken Sie dann auf die Schaltfläche Kopieren, um den Kontoschlüssel zu kopieren.Find the Key value under key1, and click the Copy button to copy the account key.

    Screenshot: Kopieren Ihres Kontoschlüssels aus dem Azure-Portal

Konfigurieren der SpeicherverbindungszeichenfolgeConfigure your storage connection string

Geben Sie in der Anwendung Ihren Speicherkontonamen sowie den Kontoschlüssel an, um ein Objekt vom Typ BlockBlobService zu erstellen.In the application, provide your storage account name and account key to create a BlockBlobService object. Öffnen Sie im Projektmappen-Explorer in Ihrer IDE die Datei example.py.Open the example.py file from the Solution Explorer in your IDE. Ersetzen Sie die Werte accountname und accountkey durch Ihren Kontonamen und Schlüssel.Replace the accountname and accountkey values with your account name and key.

block_blob_service = BlockBlobService(account_name = 'accountname', account_key = 'accountkey') 

Ausführen des BeispielsRun the sample

Dieses Beispiel erstellt eine Testdatei im Ordner Documents.This sample creates a test file in the Documents folder. Das Beispielprogramm lädt die Testdatei in den Blobspeicher hoch, listet die Blobs im Container auf und lädt die Datei mit einem neuen Namen herunter.The sample program uploads the test file to Blob storage, lists the blobs in the container, and downloads the file with a new name.

Installieren Sie zuerst die Abhängigkeiten, indem Sie pip install ausführen:First, install the dependencies by running pip install:

pip install azure-storage-blob

Führen Sie als Nächstes das Beispiel aus.Next, run the sample. Daraufhin werden Nachrichten angezeigt, die in etwa wie in der folgenden Ausgabe aussehen:You’ll see messages similar to the following output:

Temp file = C:\Users\azureuser\Documents\QuickStart_9f4ed0f9-22d3-43e1-98d0-8b2c05c01078.txt

Uploading to Blob storage as blobQuickStart_9f4ed0f9-22d3-43e1-98d0-8b2c05c01078.txt

List blobs in the container
         Blob name: QuickStart_9f4ed0f9-22d3-43e1-98d0-8b2c05c01078.txt

Downloading blob to C:\Users\azureuser\Documents\QuickStart_9f4ed0f9-22d3-43e1-98d0-8b2c05c01078_DOWNLOADED.txt

Suchen Sie im Ordner Documents nach den beiden Dateien, bevor Sie fortfahren.Before you continue, look in your Documents folder for the two files. Wenn Sie diese Dateien öffnen, sehen Sie, dass sie identisch sind.You can open them and see they're the same.

Sie können zum Anzeigen der Dateien in Blob Storage auch ein Tool, z.B. den Azure Storage-Explorer, verwenden.You can also use a tool such as the Azure Storage Explorer to view the files in Blob storage. Der Azure Storage-Explorer ist ein kostenloses plattformübergreifendes Tool, das Ihnen den Zugriff auf die Speicherkontoinformationen ermöglicht.Azure Storage Explorer is a free cross-platform tool that allows you to access your storage account information.

Drücken Sie nach erfolgreicher Überprüfung der Dateien eine beliebige Taste, um die Demo zu beenden und die Testdateien zu löschen.After you've verified the files, press any key to finish the demo and delete the test files. Nachdem Sie nun wissen, welche Aktionen das Beispiel ausführt, öffnen Sie die Datei example.py, und sehen Sie sich den Code an.Now that you know what the sample does, open the example.py file to look at the code.

Grundlagen des BeispielcodesUnderstand the sample code

In diesem Abschnitt gehen wir den Beispielcode Schritt für Schritt durch, damit Sie dessen Funktionsweise nachvollziehen können.Let’s walk through the sample code to understand how it works.

Abrufen von Verweisen auf die SpeicherobjekteGet references to the storage objects

Als Erstes erstellen Sie die Verweise auf die Objekte, die zum Zugreifen auf und Verwalten von Blobspeicher verwendet werden.First, you create the references to the objects used to access and manage Blob storage. Diese Objekte bauen aufeinander auf und jedes wird vom jeweils nächsten in der Liste verwendet.These objects build on each other, and each is used by the next one in the list.

  • Instanziieren Sie das BlockBlobService-Objekt, das auf den Blob-Dienst im Speicherkonto verweist.Instantiate the BlockBlobService object, which points to the Blob service in your storage account.

  • Instanziieren Sie das CloudBlobContainer-Objekt, das den Container darstellt, auf den Sie zugreifen.Instantiate the CloudBlobContainer object, which represents the container you're accessing. Container werden zum Organisieren der Blobs verwendet, so wie Sie auf Ihrem Computer Ordner zum Organisieren von Dateien verwenden.Containers are used to organize your blobs like you use folders on your computer to organize your files.

Wenn Sie über den Cloudblobcontainer verfügen, instanziieren Sie das CloudBlockBlob-Objekt, das auf das spezielle Blob verweist, das für Sie relevant ist.Once you have the Cloud Blob container, instantiate the CloudBlockBlob object that points to the specific blob that you're interested in. Anschließend können Sie das Blob nach Bedarf hochladen, herunterladen und kopieren.You can then upload, download, and copy the blob as you need.

Wichtig

Die Containernamen müssen klein geschrieben werden.Container names must be lowercase. Weitere Informationen zu Container- und Blobnamen finden Sie unter Naming and Referencing Containers, Blobs, and Metadata (Benennen von Containern, Blobs und Metadaten und Verweisen auf diese).For more information about container and blob names, see Naming and referencing Containers, Blobs, and Metadata.

In diesem Abschnitt instanziieren Sie die Objekte, erstellen einen neuen Container und legen dann Berechtigungen für den Container fest, damit die Blobs öffentlich sind.In this section, you instantiate the objects, create a new container, and then set permissions on the container so the blobs are public. Der Name des Containers lautet quickstartblobs.The container is called quickstartblobs.

# Create the BlockBlockService that is used to call the Blob service for the storage account.
block_blob_service = BlockBlobService(account_name = 'accountname', account_key = 'accountkey') 
 
# Create a container called 'quickstartblobs'.
container_name = 'quickstartblobs'
block_blob_service.create_container(container_name) 

# Set the permission so the blobs are public.
block_blob_service.set_container_acl(container_name, public_access=PublicAccess.Container)

Hochladen von Blobs in den ContainerUpload blobs to the container

Blob Storage unterstützt Block-, Anfüge- und Seitenblobs.Blob storage supports block blobs, append blobs, and page blobs. Blockblobs werden am häufigsten verwendet und auch in diesem Schnellstart verwendet.Block blobs are the most commonly used, and that's what is used in this quickstart.

Um eine Datei in ein Blob hochzuladen, ermitteln Sie den vollständigen Dateipfad, indem Sie den Verzeichnisnamen mit dem Dateinamen auf Ihrem lokalen Laufwerk verknüpfen.To upload a file to a blob, get the full file path by joining the directory name with the file name on your local drive. Anschließend können Sie die Datei mithilfe der Methode create_blob_from_path in den angegebenen Pfad hochladen.You can then upload the file to the specified path using the create_blob_from_path method.

Der Beispielcode erstellt eine lokale Datei für den Upload und Download. Dabei wird die hochzuladende Datei als Vollständiger_Pfad_zur_Datei und der Name des Blobs als Name_der_lokalen_Datei hochgeladen.The sample code creates a local file to be used for the upload and download, storing the file to be uploaded as full_path_to_file and the name of the blob as local_file_name. Im folgenden Beispiel wird die Datei in einen Container mit dem Namen quickstartblobs hochgeladen.The following example uploads the file to your container called quickstartblobs.

# Create a file in Documents to test the upload and download.
local_path = os.path.expanduser("~\Documents")
local_file_name = "QuickStart_" + str(uuid.uuid4()) + ".txt"
full_path_to_file = os.path.join(local_path, local_file_name)

# Write text to the file.
file = open(full_path_to_file, 'w')
file.write("Hello, World!")
file.close()

print("Temp file = " + full_path_to_file)
print("\nUploading to Blob storage as blob" + local_file_name)

# Upload the created file, use local_file_name for the blob name.
block_blob_service.create_blob_from_path(container_name, local_file_name, full_path_to_file)

Sie können für Blob Storage mehrere Uploadmethoden verwenden.There are several upload methods that you can use with Blob storage. Wenn Sie also beispielsweise über einen Speicherstream verfügen, können Sie anstelle von create_blob_from_path die Methode create_blob_from_stream verwenden.For example, if you have a memory stream, you can use the create_blob_from_stream method rather than create_blob_from_path.

Blockblobs können eine Größe von bis zu 4,7 TB haben und alle Arten von Dateien sein, von Excel-Arbeitsblättern bis zu großen Videodateien.Block blobs can be as large as 4.7 TB, and can be anything from Excel spreadsheets to large video files. Seitenblobs werden in erster Linie für die VHD-Dateien verwendet, die IaaS-VMs zugrunde liegen.Page blobs are primarily used for the VHD files that back IaaS VMs. Anfügeblobs dienen der Protokollierung und können z.B. verwendet werden, um beim Schreiben in eine Datei zusätzliche Daten hinzuzufügen.Append blobs are used for logging, such as when you want to write to a file and then keep adding more information. Die meisten Objekte, die in Blob Storage gespeichert werden, sind allerdings Blockblobs.Most objects stored in Blob storage are block blobs.

Auflisten der Blobs in einem ContainerList the blobs in a container

Rufen Sie mithilfe der Methode list_blobs eine Liste mit den Dateien im Container ab.Get a list of files in the container with the list_blobs method. Diese Methode gibt einen Generator zurück.This method returns a generator. Der folgende Code ruft die Liste der Blobs ab und durchläuft sie, um die Namen der in einem Container gefundenen Blobs anzuzeigen.The following code retrieves the list of blobs—then loops through them—showing the names of the blobs found in a container.

# List the blobs in the container.
print("\nList blobs in the container")
generator = block_blob_service.list_blobs(container_name)
for blob in generator:
    print("\t Blob name: " + blob.name)

Herunterladen der BlobsDownload the blobs

Laden Sie Blobs mithilfe der Methode get_blob_to_path auf Ihren lokalen Datenträger herunter.Download blobs to your local disk using the get_blob_to_path method. Durch den folgenden Code wird der in einem vorherigen Abschnitt hochgeladene Blob heruntergeladen.The following code downloads the blob uploaded in a previous section. _DOWNLOADED wird als Suffix an den Blobnamen angefügt, sodass Sie beide Dateien auf dem lokalen Datenträger sehen können._DOWNLOADED is added as a suffix to the blob name so you can see both files on local disk.

# Download the blob(s).
# Add '_DOWNLOADED' as prefix to '.txt' so you can see both files in Documents.
full_path_to_file2 = os.path.join(local_path, string.replace(local_file_name, '.txt', '_DOWNLOADED.txt'))
print("\nDownloading blob to " + full_path_to_file2)
block_blob_service.get_blob_to_path(container_name, local_file_name, full_path_to_file2)

Bereinigen von RessourcenClean up resources

Wenn Sie die in dieser Schnellstartanleitung hochgeladenen Blobs nicht mehr benötigen, können Sie mithilfe der Methode delete_container den gesamten Container löschen.If you no longer need the blobs uploaded in this quickstart, you can delete the entire container using the delete_container method. Falls Sie stattdessen einzelne Dateien löschen möchten, verwenden Sie die Methode delete_blob.To delete individual files instead, use the delete_blob method.

# Clean up resources. This includes the container and the temp files.
block_blob_service.delete_container(container_name)
os.remove(full_path_to_file)
os.remove(full_path_to_file2)

Ressourcen für die Entwicklung von Python-Anwendungen mit BlobsResources for developing Python applications with blobs

Weitere Informationen zur Python-Entwicklung mit Blobspeicher finden Sie in den folgenden Ressourcen:For more information about Python development with Blob storage, see these additional resources:

Binärdateien und QuellcodeBinaries and source code

Clientbibliothek – Referenz und BeispieleClient library reference and samples

Nächste SchritteNext steps

In dieser Schnellstartanleitung haben Sie gelernt, wie Sie mit Python Dateien zwischen einem lokalen Datenträger und Azure Blob Storage übertragen.In this quickstart, you learned how to transfer files between a local disk and Azure Blob storage using Python. Weitere Informationen zum Arbeiten mit Blob Storage finden Sie in der exemplarischen Vorgehensweise zu Blob Storage.To learn more about working with Blob storage, continue to the Blob storage How-to.

Weitere Informationen zum Storage-Explorer und Blobs finden Sie unter Verwalten von Azure Blob Storage-Ressourcen mit dem Speicher-Explorer (Vorschau).For more information about the Storage Explorer and Blobs, see Manage Azure Blob storage resources with Storage Explorer.