Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 entsprechen. 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 zur Einstellung des Supports.
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-Dateien mit Python
Im folgenden Codebeispiel wird ein FileService-Objekt verwendet, um die Freigabe zu erstellen, wenn sie nicht vorhanden ist.
file_service.create_share('myshare')
Erstellen eines Verzeichnisses
Verwandter Artikel: Entwickeln für Azure-Dateien mit Python
Sie können den Speicher organisieren, indem Sie Dateien in Unterverzeichnissen ablegen, anstatt alle Dateien im Stammverzeichnis zu speichern.
Der folgende Code erstellt ein Unterverzeichnis namens sampledir unter dem Stammverzeichnis.
file_service.create_directory('myshare', 'sampledir')
Hochladen einer Datei
Verwandter Artikel: Entwickeln für Azure-Dateien 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).
Im folgenden Beispiel wird der Inhalt der sunset.png Datei in die Datei "myfile " hochgeladen.
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'))
Dateien und Verzeichnisse in einer Azure-Dateifreigabe auflisten
Verwandter Artikel: Entwickeln für Azure-Dateien mit Python
Verwenden Sie zum Auflisten der Dateien und Verzeichnisse in einer Freigabe die list_directories_and_files-Methode. Diese Methode gibt einen Generator zurück. Der folgende Code gibt den Namen jeder Datei und jedes Verzeichnisses in einer Freigabe an die 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-Dateien 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.
Im folgenden Beispiel wird veranschaulicht, wie der Inhalt der Datei "myfile" mit get_file_to_path heruntergeladen und in die Datei out-sunset.png gespeichert wird.
file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')
Eine Momentaufnahme der Freigabe erstellen
Verwandter Artikel: Entwickeln für Azure-Dateien mit Python
Sie können eine Sicherung zu einem bestimmten Zeitpunkt Ihrer gesamten Dateifreigabe erstellen.
snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot
Erstellen Sie eine Momentaufnahme der Freigabe mit Metadaten
metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)
Freigaben und Momentaufnahmen auflisten
Verwandter Artikel: Entwickeln für Azure-Dateien mit Python
Sie können alle Schnappschüsse für eine bestimmte Freigabe auflisten.
shares = list(file_service.list_shares(include_snapshots=True))
Freigabemomentaufnahme durchsuchen
Verwandter Artikel: Entwickeln für Azure-Dateien 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-Dateien mit Python
Sie können eine Datei von einem Freigabesnapshot 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-Dateien mit Python
Sie können einen einzelnen Freigabe-Schnappschuss löschen.
file_service.delete_share(share_name, snapshot=snapshot_id)
Löschen von Dateien
Verwandter Artikel: Entwickeln für Azure-Dateien mit Python
Rufen Sie zum Löschen einer Datei delete_file auf.
Das folgende Codebeispiel zeigt, wie eine Datei gelöscht wird:
file_service.delete_file('myshare', None, 'myfile')
Freigabe löschen, wenn Momentaufnahmen vorhanden sind
Verwandter Artikel: Entwickeln für Azure-Dateien 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)