Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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) |
|
|
| Microsoft.Storage | Geconfigureerd v2 | HDD (standaard) | Zone (ZRS) |
|
|
| Microsoft.Storage | Geconfigureerd v2 | HDD (standaard) | Aardrijkskunde (GRS) |
|
|
| Microsoft.Storage | Geconfigureerd v2 | HDD (standaard) | GeoZone (GZRS) |
|
|
| Microsoft.Storage | Geconfigureerd v1 | SSD (van hoge kwaliteit) | Lokaal (LRS) |
|
|
| Microsoft.Storage | Geconfigureerd v1 | SSD (van hoge kwaliteit) | Zone (ZRS) |
|
|
| Microsoft.Storage | Betaal naar verbruik | HDD (standaard) | Lokaal (LRS) |
|
|
| Microsoft.Storage | Betaal naar verbruik | HDD (standaard) | Zone (ZRS) |
|
|
| Microsoft.Storage | Betaal naar verbruik | HDD (standaard) | Aardrijkskunde (GRS) |
|
|
| Microsoft.Storage | Betaal naar verbruik | HDD (standaard) | GeoZone (GZRS) |
|
|
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:
- Werk met Azure Files met behulp van I/O-bibliotheken voor Python-bestanden: koppel een bestandsshare met behulp van SMB of NFS en gebruik de I/O-bibliotheken voor Python-bestanden om te werken met bestanden en mappen in de share.
- Werk met Azure Files met behulp van de clientbibliotheek bestandsshares voor Python: gebruik de Azure Storage-clientbibliotheek voor bestandsshares voor Python om te werken met bestanden en mappen in een bestandsshare. Deze clientbibliotheek bouwt voort op de FileREST-API.
- Azure Files-resources beheren met behulp van de Azure Storage-beheerbibliotheken: gebruik de Azure Storage-beheerbibliotheken om bestandsshares en andere resources in uw opslagaccount te beheren. De beheerbibliotheken zijn gebaseerd op de REST API van de Azure Storage-resourceprovider.
Vereiste voorwaarden
- Azure-abonnement: u kunt een gratis abonnement nemen
- Azure Storage-account - een opslagaccount maken
- Python 3.8+
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:
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:
- Een SMB-bestandsshare koppelen in Windows
- Een SMB-bestandsshare koppelen op Linux
- Een NFS-bestandsshare koppelen op Linux
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:
- Clientbibliotheek voor Azure Storage-bestandsshares voor Python
- Clientbibliotheek voor Azure Storage-bestandsshares voor Python-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}")
Verwante inhoud
Zie de volgende resources voor meer informatie over ontwikkelen met Azure Files: