Codebeispiele für Azure File Share mit Clientbibliotheken für Python, Version 2
Dieser Artikel zeigt Codebeispiele, die Version 2 der Azure File Storage-Clientbibliothek für Python verwenden.
Am 31. März 2023 haben wir die Unterstützung für Azure SDK-Bibliotheken eingestellt, die nicht den aktuellen Azure SDK-Richtlinien entsprachen. Die neuen Azure SDK-Bibliotheken werden regelmäßig aktualisiert, um konsistente Erfahrungen zu ermöglichen und Ihren Sicherheitsstatus zu stärken. Es wird empfohlen, auf die neuen Azure SDK-Bibliotheken umzusteigen, um die neuen Funktionen und wichtigen Sicherheitsupdates zu nutzen.
Obwohl die älteren Bibliotheken noch über den 31. März 2023 hinaus verwendet werden können, erhalten sie keinen offiziellen Support und keine Updates mehr von Microsoft. Weitere Informationen finden Sie in der Ankündigung der Supporteinstellung.
Voraussetzungen
Installieren Sie das folgende Paket mithilfe von pip install
:
pip install azure-storage-file
Fügen Sie die folgende import
-Anweisung hinzu:
from azure.storage.file import FileService
Erstellen einer Azure-Dateifreigabe
Verwandter Artikel: Entwickeln für Azure Files mit Python
Im folgenden Codebeispiel wird mithilfe eines FileService-Objekts die Freigabe erstellt, wenn sie nicht vorhanden ist.
file_service.create_share('myshare')
Erstellen eines Verzeichnisses
Verwandter Artikel: Entwickeln für Azure Files mit Python
Sie können den Speicher organisieren, indem Sie Dateien in Unterverzeichnissen ablegen, anstatt alle Dateien im Stammverzeichnis zu speichern.
Mit dem folgenden Code wird ein Unterverzeichnis mit dem Namen sampledir im Stammverzeichnis erstellt.
file_service.create_directory('myshare', 'sampledir')
Hochladen einer Datei
Verwandter Artikel: Entwickeln für Azure Files mit Python
In diesem Abschnitt erfahren Sie, wie Sie eine Datei aus dem lokalen Speicher in Azure Files hochladen können.
Eine Azure-Dateifreigabe enthält mindestens ein Stammverzeichnis, in dem Dateien gespeichert werden können. Verwenden Sie eine der folgenden Methoden, um eine Datei zu erstellen und Daten hochzuladen:
Diese Methoden führen das erforderliche Chunking durch, wenn die Größe der Daten 64 MB übersteigt.
create_file_from_path
lädt den Inhalt einer Datei aus dem angegebenen Pfad, create_file_from_stream
den Inhalt einer Datei aus einer bereits geöffneten Datei/einem bereits geöffneten Stream hoch. create_file_from_bytes
lädt ein Byte-Array, create_file_from_text
den angegebenen Textwert wie vorgegeben codiert hoch (Standardcodierung ist UTF-8).
Das folgende Beispiel lädt den Inhalt der Datei sunset.png in die Datei myfile hoch.
from azure.storage.file import ContentSettings
file_service.create_file_from_path(
'myshare',
None, # We want to create this file in the root directory, so we specify None for the directory_name
'myfile',
'sunset.png',
content_settings=ContentSettings(content_type='image/png'))
Auflisten von Dateien und Verzeichnissen in einer Azure-Dateifreigabe
Verwandter Artikel: Entwickeln für Azure Files mit Python
Verwenden Sie zum Auflisten der Dateien und Verzeichnisse in einer Freigabe die Methode list_directories_and_files. Diese Methode gibt einen Generator zurück. Der folgende Code gibt den Namen der einzelnen Dateien und Verzeichnisse in einer Freigabe an der Konsole aus.
generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
print(file_or_dir.name)
Herunterladen einer Datei
Verwandter Artikel: Entwickeln für Azure Files mit Python
Verwenden Sie eine der folgenden Methoden, um Daten aus einer Datei herunterzuladen:
Diese Methoden führen das erforderliche Chunking durch, wenn die Größe der Daten 64 MB übersteigt.
Das folgende Beispiel verwendet get_file_to_path
, um den Inhalt der Datei myfile herunterzuladen und in der Datei out-sunset.png zu speichern.
file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')
Erstellen einer Freigabemomentaufnahme
Verwandter Artikel: Entwickeln für Azure Files mit Python
Sie können eine Zeitpunktkopie Ihrer gesamten Dateifreigabe erstellen.
snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot
Erstellen einer Freigabemomentaufnahme mit Metadaten
metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)
Auflisten von Freigaben und Momentaufnahmen
Verwandter Artikel: Entwickeln für Azure Files mit Python
Sie können alle Momentaufnahmen für eine bestimmte Freigabe auflisten.
shares = list(file_service.list_shares(include_snapshots=True))
Durchsuchen einer Freigabemomentaufnahme
Verwandter Artikel: Entwickeln für Azure Files mit Python
Sie können die einzelnen Freigabemomentaufnahmen durchsuchen, um Dateien und Verzeichnisse von diesem Zeitpunkt abzurufen.
directories_and_files = list(
file_service.list_directories_and_files(share_name, snapshot=snapshot_id))
Abrufen einer Datei aus einer Freigabemomentaufnahme
Verwandter Artikel: Entwickeln für Azure Files mit Python
Sie können eine Datei von einer Freigabemomentaufnahme herunterladen. Auf diese Weise können Sie eine frühere Version einer Datei wiederherstellen.
with open(FILE_PATH, 'wb') as stream:
file = file_service.get_file_to_stream(
share_name, directory_name, file_name, stream, snapshot=snapshot_id)
Löschen einer einzelnen Freigabemomentaufnahme
Verwandter Artikel: Entwickeln für Azure Files mit Python
Sie können eine einzelne Freigabemomentaufnahme löschen.
file_service.delete_share(share_name, snapshot=snapshot_id)
Löschen von Dateien
Verwandter Artikel: Entwickeln für Azure Files mit Python
Rufen Sie delete_file auf, um eine Datei zu löschen.
Das folgende Codebeispiel zeigt, wie eine Datei gelöscht wird:
file_service.delete_file('myshare', None, 'myfile')
Löschen einer Freigabe bei vorhandenen Freigabemomentaufnahmen
Verwandter Artikel: Entwickeln für Azure Files mit Python
Eine Freigabe, die Momentaufnahmen enthält, kann erst gelöscht werden, nachdem alle Momentaufnahmen gelöscht wurden.
Das folgende Codebeispiel zeigt, wie eine Freigabe gelöscht wird:
file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)