Delen via


Ontwikkelen voor Azure Files met Python

Meer informatie over het ontwikkelen van Python-toepassingen die gebruikmaken van Azure Files om gegevens op te slaan. Azure Files is een beheerde bestandsshareservice in de cloud. Het biedt volledig beheerde bestandsshares die toegankelijk zijn via de industriestandaard SMB-protocollen (Server Message Block) en Network File System (NFS). Azure Files biedt ook een REST API voor programmatische toegang tot bestandsshares.

In dit artikel leert u meer over de verschillende benaderingen voor het ontwikkelen met Azure Files in Python en hoe u de aanpak kiest die het beste past bij de behoeften van uw app. U leert ook hoe u een eenvoudige console-app maakt die communiceert met Azure Files-resources.

Van toepassing op

Beheermodel Betaalmodel Medianiveau Redundancy Kleine en Middelgrote Ondernemingen (SMB) NFS
Microsoft.Storage Geconfigureerd v2 HDD (standaard) Lokaal (LRS) Ja Nee
Microsoft.Storage Geconfigureerd v2 HDD (standaard) Zone (ZRS) Ja Nee
Microsoft.Storage Geconfigureerd v2 HDD (standaard) Aardrijkskunde (GRS) Ja Nee
Microsoft.Storage Geconfigureerd v2 HDD (standaard) GeoZone (GZRS) Ja Nee
Microsoft.Storage Geconfigureerd v1 SSD (van hoge kwaliteit) Lokaal (LRS) Ja Nee
Microsoft.Storage Geconfigureerd v1 SSD (van hoge kwaliteit) Zone (ZRS) Ja Nee
Microsoft.Storage Betaal naar verbruik HDD (standaard) Lokaal (LRS) Ja Nee
Microsoft.Storage Betaal naar verbruik HDD (standaard) Zone (ZRS) Ja Nee
Microsoft.Storage Betaal naar verbruik HDD (standaard) Aardrijkskunde (GRS) Ja Nee
Microsoft.Storage Betaal naar verbruik HDD (standaard) GeoZone (GZRS) Ja Nee

Over de ontwikkeling van Python-apps met Azure Files

Azure Files biedt verschillende manieren voor Python-ontwikkelaars voor toegang tot gegevens en het beheren van resources in Azure Files. De volgende tabel bevat de benaderingen, geeft een overzicht van hoe ze werken en biedt richtlijnen voor het gebruik van elke benadering:

Methode Hoe het werkt Wanneer te gebruiken
Standaard-I/O-bibliotheken voor bestanden Maakt gebruik van API-aanroepen op besturingssysteemniveau via Azure-bestandsshares die zijn gekoppeld met behulp van SMB of NFS. Wanneer u een bestandsshare koppelt met behulp van SMB/NFS, kunt u I/O-bibliotheken voor bestanden gebruiken voor een programmeertaal of framework, zoals os en io voor Python. U hebt line-of-business-apps met bestaande code die gebruikmaakt van standaardbestands-I/O en u wilt geen code herschrijven voor de app om te werken met een Azure-bestandsshare.
FileREST-API Roept HTTPS-eindpunten rechtstreeks aan om te communiceren met gegevens die zijn opgeslagen in Azure Files. Biedt programmatische controle over middelen voor bestandsdeling. De Azure SDK biedt de clientbibliotheek voor bestandsshares (azure-storage-file-share) die voortbouwt op de FileREST-API, zodat u kunt communiceren met FileREST API-bewerkingen via bekende python-programmeertaalparadigma's. U bouwt toegevoegde cloudservices en apps voor klanten en u wilt geavanceerde functies gebruiken die niet beschikbaar zijn via I/O-bibliotheken van Python-bestanden.
REST API voor opslagresource-provider Maakt gebruik van Azure Resource Manager (ARM) voor het beheren van opslagaccounts en bestandsshares. Roept REST API-eindpunten aan voor verschillende resourcebeheerbewerkingen. Uw app of service moet resourcebeheertaken uitvoeren, zoals het maken, verwijderen of bijwerken van opslagaccounts of bestandsshares.

Zie Overzicht van de ontwikkeling van toepassingen met Azure Files voor algemene informatie over deze benaderingen.

Dit artikel is gericht op het werken met Azure Files-resources met behulp van de volgende methoden:

Vereiste voorwaarden

Stel je project in

In deze sectie wordt uitgelegd hoe u een project voorbereidt voor gebruik met De Azure Files.

Installeer vanuit uw projectmap pakketten op basis van de behoeften van uw app met behulp van de pip install opdracht. In het volgende voorbeeld ziet u hoe u de clientbibliotheek voor Azure-bestandsshares, de clientbibliotheek voor opslagbeheer en de Azure Identity-bibliotheek installeert. Het azure-identity-pakket is nodig voor verbindingen zonder wachtwoord met Azure-services.

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

Open het codebestand en voeg de benodigde importinstructies toe.

Als u van plan bent om python os en io bibliotheken te gebruiken, voegt u het volgende toe aan uw .py-bestand :

import os
import io

Als u van plan bent om de Clientbibliotheek voor Azure Storage-bestandsshares te gebruiken, voegt u het volgende toe aan uw .py-bestand :

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

Als u van plan bent om de Azure Storage-beheerbibliotheken te gebruiken, voegt u het volgende toe aan uw .py-bestand :

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

Werken met Azure Files met I/O-bibliotheken voor Python-bestanden

Standaard-I/O-bibliotheken voor bestanden zijn de meest voorkomende manier om azure Files-resources te openen en te gebruiken. Wanneer u een bestandsdeling koppelt met behulp van SMB of NFS, leidt uw besturingssysteem API-aanvragen om naar het lokale bestandssysteem. Met deze methode kunt u standaard I/O-bibliotheken voor bestanden, zoals os of io, gebruiken om te communiceren met bestanden en mappen in de share.

Overweeg het gebruik van I/O-bibliotheken voor Python-bestanden wanneer uw app vereist:

  • App-compatibiliteit: Ideaal voor Line-Of-Business-apps met bestaande code die al I/O-bibliotheken van Python-bestanden gebruikt. U hoeft code niet opnieuw te schrijven om de app te laten werken met een Azure-bestandsshare.
  • Gebruiksgemak: I/O-bibliotheken voor Python-bestanden zijn bekend door ontwikkelaars en eenvoudig te gebruiken. Een belangrijke waardepropositie van Azure Files is dat het systeemeigen bestandssysteem-API's beschikbaar maakt via SMB en NFS.

In deze sectie leert u hoe u I/O-bibliotheken van Python-bestanden gebruikt om te werken met Azure Files-resources.

Zie de volgende bronnen voor meer informatie en voorbeelden:

  • Python-bibliotheken voor bestands-I/O: os en io

Een bestandsshare koppelen

Als u I/O-bibliotheken voor Python-bestanden wilt gebruiken, moet u eerst een bestandsshare koppelen. Zie de volgende bronnen voor hulp bij het koppelen van een bestandsshare met behulp van SMB of NFS:

In dit artikel gebruiken we het volgende pad om te verwijzen naar een gekoppelde SMB-bestandsshare in Windows:

file_share_path = "Z:\\file-share"

Voorbeeld: Verbinding maken met een bestandsshare en mappen inventariseren met behulp van I/O-bibliotheken van Python-bestanden

In het volgende codevoorbeeld ziet u hoe u verbinding maakt met een bestandsshare en hoe u de mappen in de share weergeeft:

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)

Voorbeeld: Schrijven naar een bestand in een bestandsshare met behulp van I/O-bibliotheken van Python-bestanden

In het volgende codevoorbeeld ziet u hoe u tekst schrijft en toevoegt aan een bestand:

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")

Voorbeeld: Bestands-ACL's inventariseren met behulp van I/O-bibliotheken van Python-bestanden

In het volgende codevoorbeeld ziet u hoe u eenvoudige toegangsbeheerlijsten (ACL's) voor een bestand opsommen:

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)

Werken met Azure Files gegevens met de File Shares clientbibliotheek voor Python

De FileREST-API biedt programmatische toegang tot Azure Files. Hiermee kunt u HTTPS-eindpunten aanroepen om bewerkingen uit te voeren op bestandsshares, mappen en bestanden. De FileREST-API is ontworpen voor hoge schaalbaarheid en geavanceerde functies die mogelijk niet beschikbaar zijn via systeemeigen protocollen. De Azure SDK biedt clientbibliotheken, zoals de clientbibliotheek bestandsshares voor Python, die zijn gebaseerd op de FileREST-API.

Overweeg het gebruik van de FileREST-API en de bestandsshare-clientbibliotheek als uw toepassing vereist:

  • Geavanceerde functies: Toegang tot bewerkingen en functies die niet beschikbaar zijn via systeemeigen protocollen.
  • Aangepaste cloudintegraties: Bouw aangepaste services met toegevoegde waarde, zoals back-up, antivirus of gegevensbeheer, die rechtstreeks met Azure Files communiceren.
  • Optimalisatie van prestaties: Profiteer van prestatievoordelen in grootschalige scenario's met behulp van gegevensvlakbewerkingen.

De FileREST-API modelleert Azure Files als een hiërarchie van resources en wordt aanbevolen voor bewerkingen die worden uitgevoerd op map - of bestandsniveau . Geef de voorkeur aan de REST API van de opslagresourceprovider voor bewerkingen die worden uitgevoerd op het niveau van de bestandsservice of bestandsshare .

In deze sectie leert u hoe u de clientbibliotheek voor bestandsshares gebruikt om te werken met Azure Files-bronnen.

Zie de volgende bronnen voor meer informatie en voorbeelden:

Toegang autoriseren en een client maken

Als u een app wilt verbinden met Azure Files, maakt u een ShareClient object. Dit object is het uitgangspunt voor het werken met Azure Files-resources. In de volgende codevoorbeelden ziet u hoe u een ShareClient object maakt met behulp van verschillende autorisatiemechanismen.

Als u wilt autoriseren met Microsoft Entra-id, moet u een beveiligingsprincipaal gebruiken. Het type beveiligingsprincipaal dat u nodig hebt, is afhankelijk van waar uw app wordt uitgevoerd. Gebruik deze tabel als richtlijn.

Waar de app wordt uitgevoerd Beveiligingsprincipaal Begeleiding
Lokale machine (ontwikkelen en testen) Service-principal Zie Toegang autoriseren met behulp van service-principals voor ontwikkelaars voor meer informatie over het registreren van de app, het instellen van een Microsoft Entra-groep, het toewijzen van rollen en het configureren van omgevingsvariabelen
Lokale machine (ontwikkelen en testen) Gebruikersidentiteit Zie Toegang autoriseren met behulp van referenties voor ontwikkelaars voor meer informatie over het instellen van een Microsoft Entra-groep, het toewijzen van rollen en aanmelden bij Azure
Gehost in Azure Beheerde identiteit Zie Toegang autoriseren vanuit door Azure gehoste apps met behulp van een beheerde identiteit voor meer informatie over het inschakelen van beheerde identiteiten en het toewijzen van rollen
Gehost buiten Azure (bijvoorbeeld on-premises apps) Service-principal Zie Toegang vanuit on-premises apps autoriseren met behulp van een service-principal voor toepassingen voor meer informatie over het registreren van de app, het toewijzen van rollen en het configureren van omgevingsvariabelen

Als u wilt werken met de codevoorbeelden in dit artikel, wijst u de ingebouwde rol Opslagbestandsgegevens Bevoorrechte Medewerker toe aan de beveiligingsprincipaal. Deze rol biedt volledige lees-, schrijf-, wijzigings-ACL's en verwijdertoegang voor alle gegevens in de shares voor alle geconfigureerde opslagaccounts, ongeacht de NTFS-machtigingen op bestand/directoryniveau die zijn ingesteld. Zie Toegang tot Azure-bestandsshares met behulp van Microsoft Entra ID met Azure Files OAuth via REST voor meer informatie.

Toegang autoriseren met DefaultAzureCredential

Een eenvoudige en veilige manier om toegang te verlenen en verbinding te maken met Azure Files is door een OAuth-token te verkrijgen door een DefaultAzureCredential-exemplaar te maken. Vervolgens kunt u die referentie gebruiken om een ShareClient object te maken.

In het volgende voorbeeld wordt een ShareClient object gemaakt dat is geautoriseerd met behulp van DefaultAzureCredential, en maakt u vervolgens een ShareDirectoryClient object om te werken met een map in de share:

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")

Als u precies weet welk referentietype u gebruikt om gebruikers te verifiëren, kunt u een OAuth-token verkrijgen met behulp van andere klassen in de Azure Identity-clientbibliotheek voor Python. Deze klassen zijn afgeleid van de klasse TokenCredential .

Zie Kiezen hoe u toegang tot bestandsgegevens kunt autoriseren voor meer informatie over elk van deze autorisatiemechanismen.

Voorbeeld: Bestanden kopiëren met behulp van de clientbibliotheek voor bestandsshares

U kunt bestanden in een bestandsshare of tussen bestandsshares kopiëren met behulp van de volgende methode:

U kunt een bestand naar een doel-blob kopiëren met behulp van de volgende methode uit een BlobClient object:

In het volgende codevoorbeeld ziet u hoe u een bestand kopieert naar een bestand in een andere bestandsshare:

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)

Voorbeeld: Een bestand leasen met behulp van de clientbibliotheek voor bestandsdeling

Een lease maakt een vergrendeling op een bestand dat wordt beheerd door Azure via een lease-id. De lease biedt een mechanisme voor het coördineren van de toegang tot bestanden op meerdere clients in een gedistribueerd systeem. Een lease op een bestand biedt exclusieve schrijf- en verwijdertoegang. Zie Leasebestand voor meer informatie over leasestatussen en acties.

In het volgende codevoorbeeld ziet u hoe u een leaseclient maakt, een oneindige duur lease op een bestand verkrijgt en de lease vrijgeeft:

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()

Wanneer u zowel SMB als de FileREST-API gebruikt, moet u er rekening mee houden dat de FileREST-API leases gebruikt om bestandsvergrendelingen te beheren, terwijl SMB gebruikmaakt van bestandssysteemvergrendelingen die worden beheerd door het besturingssysteem. Zie Bestandsvergrendelingen beheren voor meer informatie over het beheren van interacties tussen SMB en de FileREST-API.

Voorbeeld: Momentopnamen van shares maken en weergeven met behulp van de bestandsshares-clientbibliotheek.

Momentopnamen van shares zijn alleen-lezen kopieën van een bestandsshare op een bepaald moment. U kunt een momentopname van een bestandsshare maken en vervolgens de momentopname gebruiken om toegang te krijgen tot de gegevens in de share op het moment dat de momentopname is gemaakt. U kunt ook alle momentopnamen in een bestandsshare weergeven en momentopnamen van shares verwijderen.

In het volgende codevoorbeeld ziet u hoe u een momentopname van een share maakt, de momentopnamen in een bestandsshare weergeeft en de hoofdmap doorkruist in een momentopname van een share:

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)

Opmerking

OAuth-tokens, zoals de tokens die zijn verkregen bij gebruik DefaultAzureCredential, zijn niet toegestaan voor bewerkingen in het gegevensvlak op het niveau van de bestandsshare. Als u wilt werken met momentopnamen van shares, moet het clientobject worden geautoriseerd met behulp van de accountsleutel. Het ShareClient object dat in dit codevoorbeeld is gemaakt, maakt gebruik van een verbindingsreeks, die de accountsleutel bevat.

Het opslaan van accountsleutels of verbindingsreeksen vormt een beveiligingsrisico. U moet ze alleen gebruiken wanneer Microsoft Entra-verificatie niet beschikbaar is. Zie Over door Azure Key Vault beheerde opslagaccountsleutels voor meer informatie over het veilig opslaan van accountsleutels in Azure Key Vault.

Azure Files-resources beheren met behulp van de Azure Storage-beheerbibliotheken

De Azure Storage-beheerbibliotheken zijn gebaseerd op de REST API van de Azure Storage-resourceprovider. De Azure Storage-resourceprovider is een service op basis van Azure Resource Manager en ondersteunt zowel declaratieve (sjablonen) als imperatieve methoden (directe API-aanroep). De REST API van de Azure Storage-resourceprovider biedt programmatische toegang tot Azure Storage-resources, waaronder bestandsshares. De Azure SDK biedt beheerbibliotheken die zijn gebaseerd op de REST API van de Azure Storage-resourceprovider.

De beheerbibliotheken worden aanbevolen voor bewerkingen die worden uitgevoerd op bestandsservice - of bestandsshareniveau . In deze sectie leert u hoe u de Azure Storage-beheerbibliotheken gebruikt om Azure Files-resources te beheren.

Voorbeeld: Een bestandsshare maken met behulp van de Azure Storage-beheerbibliotheek

In het volgende codevoorbeeld ziet u hoe u een object op het hoogste niveau ArmClient maakt, de opslagresourceprovider registreert bij een abonnement en een bestandsshare maakt met behulp van de Azure Storage-beheerbibliotheek:

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
    )
)

U kunt de eigenschappen van de bestandsshare configureren met behulp van de FileShare klasse. In het vorige voorbeeld ziet u hoe u de share_quota eigenschap instelt. Zie de klassereferentie storageManagementClient voor meer informatie.

Opmerking

Als u de registratiebewerking wilt uitvoeren, hebt u machtigingen nodig voor de volgende Azure RBAC-actie: Microsoft.Storage/register/action. Deze machtiging is opgenomen in de ingebouwde rollen Inzender en Eigenaar.

Voorbeeld: Bestandsshares en momentopnamen weergeven met behulp van de Azure Storage-beheerbibliotheek

In het volgende codevoorbeeld ziet u hoe u bestandsshares en momentopnamen in een opslagaccount weergeeft:

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}")

Zie de volgende resources voor meer informatie over ontwikkelen met Azure Files: