Freigeben über


Entwickeln für Azure Files mit Python

Erfahren Sie, wie Sie Python-Anwendungen entwickeln, die Azure Files zum Speichern von Daten verwenden. Azure Files ist ein verwalteter Dateifreigabedienst in der Cloud. Sie bietet vollständig verwaltete Dateifreigaben, auf die über die Standardprotokolle Server Message Block (SMB) und Network File System (NFS) zugegriffen werden kann. Azure Files bietet auch eine REST-API für den programmgesteuerten Zugriff auf Dateifreigaben.

In diesem Artikel erfahren Sie mehr über die verschiedenen Ansätze für die Entwicklung mit Azure Files in Python und wie Sie den Ansatz auswählen, der den Anforderungen Ihrer App am besten entspricht. Außerdem erfahren Sie, wie Sie eine einfache Konsolen-App erstellen, die mit Azure Files-Ressourcen interagiert.

Gilt für:

Verwaltungsmodell Abrechnungsmodell Medienebene Redundanz KMU NFS
Microsoft.Storage Bereitgestellt v2 HDD (Standard) Lokal (LRS) Yes Nein
Microsoft.Storage Bereitgestellt v2 HDD (Standard) Zone (ZRS) Yes Nein
Microsoft.Storage Bereitgestellt v2 HDD (Standard) Geografischer Raum (GRS) Yes Nein
Microsoft.Storage Bereitgestellt v2 HDD (Standard) GeoZone (GZRS) Yes Nein
Microsoft.Storage Bereitgestellt v1 SSD (Premium) Lokal (LRS) Yes Nein
Microsoft.Storage Bereitgestellt v1 SSD (Premium) Zone (ZRS) Yes Nein
Microsoft.Storage Nutzungsbasierte Bezahlung HDD (Standard) Lokal (LRS) Yes Nein
Microsoft.Storage Nutzungsbasierte Bezahlung HDD (Standard) Zone (ZRS) Yes Nein
Microsoft.Storage Nutzungsbasierte Bezahlung HDD (Standard) Geografischer Raum (GRS) Yes Nein
Microsoft.Storage Nutzungsbasierte Bezahlung HDD (Standard) GeoZone (GZRS) Yes Nein

Informationen zur Entwicklung von Python-Apps mit Azure Files

Azure Files bietet verschiedene Möglichkeiten für Python-Entwickler, auf Daten zuzugreifen und Ressourcen in Azure Files zu verwalten. Die folgende Tabelle enthält die Ansätze, fasst zusammen, wie sie funktionieren, und enthält Anleitungen zur Verwendung der einzelnen Ansätze:

Vorgehensweise Funktionsweise Wann verwenden
Standard-Datei-I/O-Bibliotheken Verwendet API-Aufrufe auf Betriebssystemebene über Azure-Dateifreigaben, die über SMB oder NFS eingebunden wurden. Wenn Sie eine Dateifreigabe mithilfe von SMB/NFS einbinden, können Sie Datei-E/A-Bibliotheken für eine Programmiersprache oder ein Framework verwenden, z. B. os und io für Python. Sie verfügen über Branchen-Apps mit vorhandenem Code, der standarddatei-E/A verwendet, und Sie möchten keinen Code für die App neu schreiben, um mit einer Azure-Dateifreigabe zu arbeiten.
FileREST-API Ruft https-Endpunkte direkt auf, um mit daten zu interagieren, die in Azure Files gespeichert sind. Stellt programmgesteuerte Kontrolle über Dateifreigaberessourcen bereit. Das Azure SDK stellt die Clientbibliothek für Dateifreigaben bereit (azure-storage-file-share), die auf der FileREST-API basiert, und ermöglicht Ihnen die Interaktion mit Vorgängen der FileREST-API über vertraute Python-Programmiersprachenparadigmen. Sie erstellen Mehrwertige Clouddienste und -apps für Kunden und möchten erweiterte Features verwenden, die nicht über Python-Datei-E/A-Bibliotheken verfügbar sind.
REST-API des Speicherressourcenanbieters Verwendet Azure Resource Manager (ARM) zum Verwalten von Speicherkonten und Dateifreigaben. Ruft REST-API-Endpunkte für verschiedene Ressourcenverwaltungsvorgänge auf. Ihre App oder Ihr Dienst muss Ressourcenverwaltungsaufgaben ausführen, z. B. das Erstellen, Löschen oder Aktualisieren von Speicherkonten oder Dateifreigaben.

Allgemeine Informationen zu diesen Ansätzen finden Sie unter Übersicht über die Anwendungsentwicklung mit Azure Files.

Dieser Artikel konzentriert sich auf die Arbeit mit Azure Files-Ressourcen mit den folgenden Ansätzen:

Voraussetzungen

Einrichten des Projekts

Dieser Abschnitt führt Sie durch die Vorbereitung eines Projekts für die Arbeit mit den Azure Files.

Installieren Sie in Ihrem Projektverzeichnis Pakete basierend auf den Anforderungen Ihrer App mithilfe des pip install Befehls. Das folgende Beispiel zeigt, wie Sie die Clientbibliothek für Azure-Dateifreigaben, die Speicherverwaltungsclientbibliothek und die Azure Identity-Bibliothek installieren. Das Azure-Identity-Paket ist für kennwortlose Verbindungen mit Azure-Diensten erforderlich.

pip install azure-identity
pip install azure-storage-file-share
pip install azure-mgmt-resource
pip install azure-mgmt-storage

Öffnen Sie Die Codedatei, und fügen Sie die erforderlichen Importanweisungen hinzu.

Wenn Sie die Python os - und io Bibliotheken verwenden möchten, fügen Sie Ihrer .py Datei Folgendes hinzu:

import os
import io

Wenn Sie beabsichtigen, die Clientbibliothek für Azure Storage File Shares zu verwenden, fügen Sie Ihrer .py Datei, Folgendes hinzu:

from azure.identity import DefaultAzureCredential
from azure.storage.fileshare import ShareClient, ShareDirectoryClient, ShareFileClient

Wenn Sie beabsichtigen, die Azure Storage-Verwaltungsbibliotheken zu verwenden, fügen Sie Ihrer .py Datei Folgendes hinzu:

from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.storage import StorageManagementClient

Arbeiten mit Azure Files mithilfe von Python-Datei-E/A-Bibliotheken

Standarddatei-E/A-Bibliotheken sind die am häufigsten verwendete Methode für den Zugriff und die Arbeit mit Azure Files-Ressourcen. Wenn Sie eine Dateifreigabe mithilfe von SMB oder NFS einbinden, leitet Ihr Betriebssystem API-Anforderungen für das lokale Dateisystem um. Mit diesem Ansatz können Sie Standarddatei-E/A-Bibliotheken wie os oder io verwenden, um mit Dateien und Verzeichnissen in der Freigabe zu interagieren.

Erwägen Sie die Verwendung von Python-Datei-E/A-Bibliotheken, wenn Ihre App Folgendes erfordert:

  • App-Kompatibilität: Ideal für Branchen-Apps mit vorhandenem Code, der bereits Python-Datei-E/A-Bibliotheken verwendet. Sie müssen Code nicht neu schreiben, damit die App mit einer Azure-Dateifreigabe arbeitet.
  • Benutzerfreundlichkeit: Python-Datei-E/A-Bibliotheken sind von Entwicklern bekannt und einfach zu verwenden. Ein wichtiges Wertversprechen von Azure Files besteht darin, dass sie systemeigene Dateisystem-APIs über SMB und NFS verfügbar macht.

In diesem Abschnitt erfahren Sie, wie Sie Python-Datei-E/A-Bibliotheken verwenden, um mit Azure Files-Ressourcen zu arbeiten.

Weitere Informationen und Beispiele finden Sie in den folgenden Ressourcen:

  • Python-Bibliotheken für Datei-E/A: os und io

Bereitstellen einer Dateifreigabe

Zur Verwendung von Python-Datei-E/A-Bibliotheken müssen Sie zuerst eine Dateifreigabe einbinden. Informationen zum Einbinden einer Dateifreigabe mithilfe von SMB oder NFS finden Sie in den folgenden Ressourcen:

In diesem Artikel verwenden Sie den folgenden Pfad zum Verweisen auf eine eingebundene SMB-Dateifreigabe unter Windows:

file_share_path = "Z:\\file-share"

Beispiel: Herstellen einer Verbindung mit einer Dateifreigabe und Aufzählen von Verzeichnissen mithilfe von Python-Datei-E/A-Bibliotheken

Das folgende Codebeispiel zeigt, wie Sie eine Verbindung mit einer Dateifreigabe herstellen und die Verzeichnisse in der Freigabe auflisten:

import os

def enumerate_directories(path):
    try:
        # Get all directories in the specified path
        dirs = [d for d in os.listdir(path) if os.path.isdir(os.path.join(path, d))]
        
        # Print each directory name
        for dir_name in dirs:
            print(f"{dir_name}")
            
        print(f"{len(dirs)} directories found.")
    except (PermissionError, FileNotFoundError, OSError) as ex:
        print(f"Error: {ex}")

#Example usage
file_share_path = "Z:\\file-share"
enumerate_directories(file_share_path)

Beispiel: Schreiben in eine Datei in einer Dateifreigabe mithilfe von Python-Datei-E/A-Bibliotheken

Das folgende Codebeispiel zeigt, wie Text in eine Datei geschrieben und angefügt wird:

import os

def write_to_file(file_share_path, file_name):
    # First line of text with platform-appropriate line ending
    text_to_write = "First line" + os.linesep
    
    # Combine the file share path and filename
    file_path = os.path.join(file_share_path, file_name)
    
    # Write initial text to file (overwrites if file exists)
    with open(file_path, 'w') as file:
        file.write(text_to_write)
    
    # Text to append
    text_to_append = ["Second line", "Third line"]
    
    # Append lines to the file
    with open(file_path, 'a') as file:
        file.write(os.linesep.join(text_to_append) + os.linesep)

# Example usage
file_share_path = "Z:\\file-share"
write_to_file(file_share_path, "test.txt")

Beispiel: Aufzählen von Datei-ACLs mithilfe von Python-Datei-E/A-Bibliotheken

Das folgende Codebeispiel zeigt, wie Sie grundlegende Zugriffssteuerungslisten (ACLs) für eine Datei aufzählen:

import os
import stat

def enumerate_file_acls(file_path):
    try:
        # Get file stats
        file_stat = os.stat(file_path)
        
        # Get permissions in octal format
        permissions_octal = oct(stat.S_IMODE(file_stat.st_mode))
        
        print(f"File: {file_path}")
        print(f"Permissions (octal): {permissions_octal}")
        
        # Interpret permissions in a human-readable format
        permissions = ""
        permissions += "r" if file_stat.st_mode & stat.S_IRUSR else "-"
        permissions += "w" if file_stat.st_mode & stat.S_IWUSR else "-"
        permissions += "x" if file_stat.st_mode & stat.S_IXUSR else "-"
        permissions += "r" if file_stat.st_mode & stat.S_IRGRP else "-"
        permissions += "w" if file_stat.st_mode & stat.S_IWGRP else "-" 
        permissions += "x" if file_stat.st_mode & stat.S_IXGRP else "-"
        permissions += "r" if file_stat.st_mode & stat.S_IROTH else "-"
        permissions += "w" if file_stat.st_mode & stat.S_IWOTH else "-"
        permissions += "x" if file_stat.st_mode & stat.S_IXOTH else "-"
        
        print(f"Permissions (symbolic): {permissions}")
        
        print(f"Owner ID: {file_stat.st_uid}")
        print(f"Group ID: {file_stat.st_gid}")
        print("Note: For detailed Windows ACLs, you may need a specialized library.")
        
    except FileNotFoundError:
        print(f"Error: File '{file_path}' not found.")
    except PermissionError:
        print(f"Error: Permission denied for '{file_path}'.")
    except Exception as e:
        print(f"Error: {e}")

# Example usage
file_share_path = "Z:\\file-share"
file_name = "test.txt"
file_path = os.path.join(file_share_path, file_name)

enumerate_file_acls(file_path)

Arbeiten mit Azure Files-Daten unter Verwendung der Clientbibliothek für Dateifreigaben für Python

Die FileREST-API bietet programmgesteuerten Zugriff auf Azure Files. Sie können HTTPS-Endpunkte aufrufen, um Vorgänge für Dateifreigaben, Verzeichnisse und Dateien auszuführen. Die FileREST-API wurde für hohe Skalierbarkeit und erweiterte Features entwickelt, die möglicherweise nicht über systemeigene Protokolle verfügbar sind. Das Azure-SDK stellt Clientbibliotheken bereit, etwa die Clientbibliothek für Dateifreigaben für Python, die auf der FileREST-API basieren.

Erwägen Sie die Verwendung der FileREST-API und der Dateifreigabe-Clientbibliothek, wenn Ihre Anwendung Folgendes erfordert:

  • Erweiterte Features: Zugriffsvorgänge und Features, die nicht über systemeigene Protokolle verfügbar sind.
  • Benutzerdefinierte Cloudintegrationen: Erstellen Sie benutzerdefinierte Mehrwertdienste wie Sicherung, Antivirensoftware oder Datenverwaltung, die direkt mit Azure Files interagieren.
  • Leistungsoptimierung: Profitieren Sie von Leistungsvorteilen in szenarien mit hoher Skalierung mithilfe von Datenebenenvorgängen.

Die FileREST-API modelliert Azure Files als Eine Hierarchie von Ressourcen und wird für Vorgänge empfohlen, die auf Verzeichnis - oder Dateiebene ausgeführt werden. Sie sollten die REST-API des Speicherressourcenanbieters für Vorgänge bevorzugen, die auf Dateidienst - oder Dateifreigabeebene ausgeführt werden.

In diesem Abschnitt erfahren Sie, wie Sie die Clientbibliothek für Dateifreigaben verwenden, um mit Azure Files-Ressourcen zu arbeiten.

Weitere Informationen und Beispiele finden Sie in den folgenden Ressourcen:

Autorisieren des Zugriffs und Erstellen eines Clients

Um eine App mit Azure Files zu verbinden, erstellen Sie ein ShareClient Objekt. Dieses Objekt ist Ihr Ausgangspunkt für die Arbeit mit Azure Files-Ressourcen. Die folgenden Codebeispiele zeigen, wie ein ShareClient Objekt mithilfe verschiedener Autorisierungsmechanismen erstellt wird.

Um mit Microsoft Entra ID zu autorisieren, müssen Sie einen Sicherheitsprinzipal verwenden. Welche Art von Sicherheitsprinzipal Sie benötigen, hängt davon ab, wo Ihre App ausgeführt wird. Verwenden Sie diese Tabelle als Leitfaden.

Wo die App ausgeführt wird Sicherheitsprinzipal Leitfaden
Lokaler Computer (Entwickeln und Testen) Service Principal Informationen zum Registrieren der App, Einrichten einer Microsoft Entra-Gruppe, Zuweisen von Rollen und Konfigurieren von Umgebungsvariablen finden Sie unter Autorisieren des Zugriffs mithilfe von Entwicklerdienstprinzipale
Lokaler Computer (Entwickeln und Testen) Benutzeridentität Informationen zum Einrichten einer Microsoft Entra-Gruppe, zum Zuweisen von Rollen und zur Anmeldung bei Azure finden Sie unter Autorisieren des Zugriffs mithilfe von Entwickleranmeldeinformationen
Gehostet in Azure Verwaltete Identität Informationen zum Aktivieren verwalteter Identität und Zuweisen von Rollen finden Sie unter Autorisieren des Zugriffs von von Azure gehosteten Apps mithilfe einer verwalteten Identität
Gehostet außerhalb von Azure (z. B. lokale Apps) Service Principal Informationen zum Registrieren der App, Zuweisen von Rollen und Konfigurieren von Umgebungsvariablen finden Sie unter Autorisieren des Zugriffs von lokalen Apps mithilfe eines Anwendungsdienstprinzipals

Damit Sie die Codebeispiele in diesem Artikel verwenden können, weisen Sie dem Sicherheitsprinzipal die integrierte Azure RBAC-Rolle Privilegierter Mitwirkender für Speicherdateidaten zu. Diese Rolle gewährt vollständigen Zugriff auf alle Daten mit Lese-, Schreib-, ACL-Modifizierungs- und Löschrechten in den Freigaben für alle konfigurierten Speicherkonten, unabhängig von den festgelegten NTFS-Berechtigungen auf Datei-/Verzeichnisebene. Weitere Informationen finden Sie unter Zugriff auf Azure-Dateifreigaben mit Microsoft Entra ID und Azure Files OAuth über REST.

Autorisieren des Zugriffs mithilfe von DefaultAzureCredential

Eine einfache und sichere Möglichkeit zum Autorisieren des Zugriffs und der Verbindung mit Azure Files ist das Abrufen eines OAuth-Tokens durch Erstellen einer DefaultAzureCredential-Instanz . Anschließend können Sie diese Anmeldeinformationen verwenden, um ein ShareClient Objekt zu erstellen.

Im folgenden Beispiel wird ein mithilfe von ShareClient autorisiertes DefaultAzureCredential-Objekt erstellt. Anschließend wird ein ShareDirectoryClient-Objekt erstellt, das mit einem Verzeichnis in der Freigabe verwendet werden kann:

from azure.identity import DefaultAzureCredential
from azure.storage.fileshare import ShareClient

account_name = "<account-name>"
share_name = "<share-name>"

# Create the share client using DefaultAzureCredential
share_client = ShareClient(
    account_url=f"https://{account_name}.file.core.windows.net",
    share_name=share_name,
    credential=DefaultAzureCredential(),
    # When using a token credential, you MUST specify a token_intent
    token_intent='backup'
)

# Get a reference to a directory in the share
directory_client = share_client.get_directory_client("sample-directory")

Wenn Sie genau wissen, welchen Anmeldeinformationstyp Sie zum Authentifizieren von Benutzern verwenden, können Sie ein OAuth-Token mithilfe anderer Klassen in der Azure Identity-Clientbibliothek für Python abrufen. Diese Klassen werden von der TokenCredential-Klasse abgeleitet.

Weitere Informationen zu den einzelnen Autorisierungsmechanismen finden Sie unter Auswählen, wie der Zugriff auf Dateidaten autorisiert werden soll.

Beispiel: Kopieren von Dateien mit der Clientbibliothek für Dateifreigaben

Sie können Dateien innerhalb einer Dateifreigabe oder zwischen Dateifreigaben kopieren, indem Sie die folgende Methode verwenden:

Sie können eine Datei in ein Ziel-BLOB kopieren, indem Sie die folgende Methode aus einem BlobClient Objekt verwenden:

Das folgende Codebeispiel zeigt, wie eine Datei in eine Datei in einer anderen Dateifreigabe kopiert wird:

from azure.identity import DefaultAzureCredential
from azure.storage.fileshare import ShareFileClient

# Define storage account parameters
account_name = "<account-name>"
src_share_name = "src-file-share"
dest_share_name = "dest-file-share"
src_file_path = "src/path/to/file"
dest_file_path = "dest/path/to/file"

# Create token credential
token_credential = DefaultAzureCredential()

# Create source file client
src_file_client = ShareFileClient(
    account_url=f"https://{account_name}.file.core.windows.net",
    share_name=src_share_name,
    file_path=src_file_path,
    credential=token_credential,
    token_intent='backup'
)

# Create destination file client
dest_file_client = ShareFileClient(
    account_url=f"https://{account_name}.file.core.windows.net",
    share_name=dest_share_name,
    file_path=dest_file_path,
    credential=token_credential,
    token_intent='backup'
)

# Copy the file from the source share to the destination share
copy_operation = dest_file_client.start_copy_from_url(src_file_client.url)

Beispiel: Leasen einer Datei mithilfe der Clientbibliothek für Dateifreigaben

Ein Lease erstellt eine Sperre für eine Datei, die von Azure über eine Lease-ID verwaltet wird. Die Lease bietet einen Mechanismus zum Koordinieren des Zugriffs auf Dateien über mehrere Clients in einem verteilten System. Eine Lease für eine Datei bietet exklusiven Schreib- und Löschzugriff. Weitere Informationen zu Leasezuständen und -aktionen finden Sie unter Lease File.

Das folgende Codebeispiel zeigt, wie Sie einen Leaseclient erstellen, eine unendliche Dauer-Lease für eine Datei erwerben und die Lease freigeben:

from azure.identity import DefaultAzureCredential
from azure.storage.fileshare import ShareFileClient, ShareLeaseClient

# Define storage account parameters
account_name = "<account-name>"
share_name = "sample-file-share"
file_path = "path/to/file"

# Create a DefaultAzureCredential for authentication
token_credential = DefaultAzureCredential()

# Create a ShareFileClient
file_client = ShareFileClient(
    account_url=f"https://{account_name}.file.core.windows.net",
    share_name=share_name,
    file_path=file_path,
    credential=token_credential,
    token_intent='backup'
)

# Get a lease client for the file
lease_client = ShareLeaseClient(file_client)

# Acquire an infinite duration lease on the file
lease_info = lease_client.acquire()

# Do something with the file while it's leased
# ...

# Release the lease
lease_client.release()

Beachten Sie bei der Verwendung von SMB und der FileREST-API, dass die FileREST-API Leases zum Verwalten von Dateisperren verwendet, während SMB Dateisystemsperren verwendet, die vom Betriebssystem verwaltet werden. Weitere Informationen zum Verwalten von Dateisperrinteraktionen zwischen SMB und der FileREST-API finden Sie unter Verwalten von Dateisperren.

Beispiel: Erstellen und Auflisten von Freigabemomentaufnahmen mithilfe der Clientbibliothek für Dateifreigaben

Freigabemomentaufnahmen sind schreibgeschützte Kopien einer Dateifreigabe zu einem bestimmten Zeitpunkt. Sie können eine Momentaufnahme einer Dateifreigabe erstellen und anschließend diese Momentaufnahme verwenden, um auf die Daten in der Freigabe zum Zeitpunkt der Momentaufnahmeerstellung zuzugreifen. Sie können auch alle Momentaufnahmen in einer Dateifreigabe auflisten und Freigabemomentaufnahmen löschen.

Das folgende Codebeispiel zeigt, wie Sie eine Freigabemomentaufnahme erstellen, die Momentaufnahmen in einer Dateifreigabe auflisten und das Stammverzeichnis in einer Freigabemomentaufnahme durchlaufen:

from azure.storage.fileshare import ShareServiceClient, ShareDirectoryClient

def list_root_directory_snapshot(root_dir: ShareDirectoryClient):
    for item in root_dir.list_directories_and_files():
        if item["is_directory"]:
            print(f"Directory in snapshot: {item['name']}")
        else:
            print(f"File in snapshot: {item['name']}")

# Connection string with account key (required for share snapshots)
connection_string = "<connection-string>"

# Create service and share clients
share_service_client = ShareServiceClient.from_connection_string(connection_string)
share_name = "sample-file-share"
share_client = share_service_client.get_share_client(share_name)

# Create a snapshot
snapshot_info = share_client.create_snapshot()
print(f"Snapshot created: {snapshot_info['snapshot']}")

# List snapshots in a share
for share_item in share_service_client.list_shares(include_snapshots=True):
    if share_item["snapshot"]:
        print(f"Share: {share_item['name']} (Snapshot: {share_item['snapshot']})")

# List directories and files in a share snapshot
snapshot_timestamp = snapshot_info["snapshot"]
share_snapshot = share_service_client.get_share_client(share_name, snapshot=snapshot_timestamp)
root_dir = share_snapshot.get_directory_client("")

list_root_directory_snapshot(root_dir)

Hinweis

OAuth-Token, etwa solche, die bei der Verwendung DefaultAzureCredential abgerufen werden, sind für Datenebenenvorgänge auf Dateifreigabeebene nicht zulässig. Um mit freigegebenen Snapshots zu arbeiten, muss das Clientobjekt mithilfe des Kontoschlüssels autorisiert werden. Das ShareClient in diesem Codebeispiel erstellte Objekt verwendet eine Verbindungszeichenfolge, die den Kontoschlüssel enthält.

Das Speichern von Kontoschlüsseln oder Verbindungszeichenfolgen stellt ein Sicherheitsrisiko dar. Sie sollten diese nur verwenden, wenn die Microsoft Entra-Authentifizierung nicht verfügbar ist. Weitere Informationen zum sicheren Speichern von Kontoschlüsseln in Azure Key Vault finden Sie unter Azure Key Vault verwaltete Speicherkontoschlüssel.

Verwalten von Azure Files-Ressourcen mithilfe der Azure Storage-Verwaltungsbibliotheken

Die Azure Storage-Verwaltungsbibliotheken basieren auf der REST-API des Azure Storage-Ressourcenanbieters. Der Azure Storage-Ressourcenanbieter ist ein Dienst, der auf Azure Resource Manager basiert, und unterstützt sowohl deklarative Methoden (Vorlagen) als auch imperative Methoden (direkter API-Aufruf). Die REST-API des Azure Storage-Ressourcenanbieters bietet programmgesteuerten Zugriff auf Azure Storage-Ressourcen, einschließlich Dateifreigaben. Das Azure SDK stellt Verwaltungsbibliotheken bereit, die auf der REST-API des Azure Storage-Ressourcenanbieters aufbauen.

Die Verwaltungsbibliotheken werden für Vorgänge empfohlen, die auf Dateidienst - oder Dateifreigabeebene ausgeführt werden. In diesem Abschnitt erfahren Sie, wie Sie die Azure Storage-Verwaltungsbibliotheken zum Verwalten von Azure Files-Ressourcen verwenden.

Beispiel: Erstellen einer Dateifreigabe mithilfe der Azure Storage-Verwaltungsbibliothek

Das folgende Codebeispiel zeigt, wie Sie ein Objekt auf oberster Ebene ArmClient erstellen, den Speicherressourcenanbieter mit einem Abonnement registrieren und eine Dateifreigabe mithilfe der Azure Storage-Verwaltungsbibliothek erstellen:

from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient, SubscriptionClient
from azure.mgmt.storage import StorageManagementClient
from azure.mgmt.storage.models import FileShare

# Create the credential for authentication
credential = DefaultAzureCredential()

# Define variables
subscription_id = "<subscription-id>"
resource_group_name = "<resource-group-name>"
storage_account_name = "<storage-account-name>"
share_name = "sample-file-share"

# Create clients
resource_client = ResourceManagementClient(credential, subscription_id)
subscription_client = SubscriptionClient(credential)
storage_client = StorageManagementClient(credential, subscription_id)

# Register Microsoft.Storage resource provider, if not already registered
provider = resource_client.providers.get('Microsoft.Storage')
if provider.registration_state == "NotRegistered":
    resource_client.providers.register('Microsoft.Storage')

# Create a file share
file_share = storage_client.file_shares.create(
    resource_group_name=resource_group_name,
    account_name=storage_account_name,
    share_name=share_name,
    file_share=FileShare(
        share_quota=1  # Share size in GiB
        # Add other file share properties here
    )
)

Sie können die Dateifreigabeeigenschaften mithilfe der FileShare Klasse konfigurieren. Das vorherige Beispiel zeigt, wie die share_quota Eigenschaft festgelegt wird. Weitere Informationen finden Sie in der StorageManagementClient-Klassenreferenz .

Hinweis

Zum Ausführen des Registrierungsvorgangs benötigen Sie Berechtigungen für die folgende Azure RBAC-Aktion: Microsoft.Storage/register/action. Diese Berechtigung ist in den integrierten Rollen "Mitwirkender" und "Besitzer" enthalten.

Beispiel: Auflisten von Dateifreigaben und Momentaufnahmen mithilfe der Azure Storage-Verwaltungsbibliothek

Das folgende Codebeispiel zeigt, wie Dateifreigaben und Schnappschüsse in einem Speicherkonto angezeigt werden.

from azure.identity import DefaultAzureCredential
from azure.mgmt.storage import StorageManagementClient

# Create the credential for authentication
credential = DefaultAzureCredential()

# Define variables
subscription_id = "<subscription-id>"
resource_group_name = "<resource-group-name>"
storage_account_name = "<storage-account-name>"
expand = "snapshots"  # Include snapshots in the response

# Create storage management client
storage_client = StorageManagementClient(credential, subscription_id)

# List all file shares with their snapshots
file_shares = storage_client.file_shares.list(
    resource_group_name=resource_group_name,
    account_name=storage_account_name,
    expand=expand
)

# Iterate over the file shares and print them along with any snapshots
for share in file_shares:
    print(f"Resource name: {share.name}")
    if share.snapshot_time:
        print(f"Snapshot: {share.snapshot_time}")

Weitere Informationen zur Entwicklung mit Azure Files finden Sie in den folgenden Ressourcen: