Share via


Codevoorbeelden voor Azure-bestandsshares met clientbibliotheken van Python versie 2

Dit artikel bevat codevoorbeelden die gebruikmaken van versie 2 van de Azure File Share-clientbibliotheek voor Python.

Op 31 maart 2023 hebben we de ondersteuning voor Azure SDK-bibliotheken die niet voldoen aan de huidige Azure SDK-richtlijnen, buiten gebruik gesteld. De nieuwe Azure SDK-bibliotheken worden regelmatig bijgewerkt om consistente ervaringen te stimuleren en uw beveiligingspostuur te versterken. Het is raadzaam over te stappen op de nieuwe Azure SDK-bibliotheken om te profiteren van de nieuwe mogelijkheden en essentiële beveiligingsupdates.

Hoewel de oudere bibliotheken na 31 maart 2023 nog steeds kunnen worden gebruikt, ontvangen ze geen officiële ondersteuning en updates meer van Microsoft. Zie de aankondiging over buitengebruikstelling van ondersteuning voor meer informatie.

Vereisten

Installeer het volgende pakket met behulp van pip install:

pip install azure-storage-file

Voeg de volgende import instructie toe:

from azure.storage.file import FileService

Een Azure-bestandsshare maken

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

In het volgende codevoorbeeld wordt een FileService-object gebruikt om de share te maken als deze niet bestaat.

file_service.create_share('myshare')

Een map maken

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

U kunt opslag organiseren door bestanden in submappen te plaatsen in plaats van ze allemaal in de hoofdmap te hebben.

Met de onderstaande code wordt een submap met de naam sampledir gemaakt onder de hoofdmap.

file_service.create_directory('myshare', 'sampledir')

Een bestand uploaden

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

In deze sectie leert u hoe u een bestand uploadt vanuit lokale opslag naar Azure Files.

Een Azure-bestandsshare bevat ten minste een hoofdmap waarin bestanden zich kunnen bevinden. Gebruik een van de volgende methoden om een bestand te maken en gegevens te uploaden:

Deze methoden voeren de benodigde segmentering uit wanneer de grootte van de gegevens groter is dan 64 MiB.

create_file_from_path uploadt de inhoud van een bestand vanaf het opgegeven pad en create_file_from_stream uploadt de inhoud van een al geopend bestand/stream. create_file_from_bytes uploadt een matrix van bytes en create_file_from_text uploadt de opgegeven tekstwaarde met behulp van de opgegeven codering (standaard UTF-8).

In het volgende voorbeeld wordt de inhoud van het sunset.png-bestand geüpload naar het bestand myfile .

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

Bestanden en mappen in een Azure-bestandsshare opsommen

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

Gebruik de methode list_directories_and_files om de bestanden en mappen in een share weer te geven. Deze methode retourneert een generator. Met de volgende code wordt de naam van elk bestand en elke map in een share naar de console uitgevoerd.

generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
    print(file_or_dir.name)

Een bestand downloaden

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

Als u gegevens uit een bestand wilt downloaden, gebruikt u een van de volgende methoden:

Deze methoden voeren de benodigde segmentering uit wanneer de grootte van de gegevens groter is dan 64 MiB.

In het volgende voorbeeld ziet u het gebruik get_file_to_path om de inhoud van het myfile-bestand te downloaden en op te slaan in het out-sunset.png-bestand .

file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')

Momentopname van het maken van een share

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

U kunt een kopie van uw hele bestandsshare maken naar een bepaald tijdstip.

snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot

Momentopname van share maken met metagegevens

metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)

Shares en momentopnamen weergeven

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

U kunt alle momentopnamen voor een bepaalde share weergeven.

shares = list(file_service.list_shares(include_snapshots=True))

Momentopname van share bladeren

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

U kunt door elke momentopname van een share bladeren om bestanden en mappen op te halen vanaf dat moment.

directories_and_files = list(
    file_service.list_directories_and_files(share_name, snapshot=snapshot_id))

Bestand ophalen uit momentopname van share

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

U kunt een bestand downloaden van een momentopname van een share. Hiermee kunt u een vorige versie van een bestand herstellen.

with open(FILE_PATH, 'wb') as stream:
    file = file_service.get_file_to_stream(
        share_name, directory_name, file_name, stream, snapshot=snapshot_id)

Een momentopname van één share verwijderen

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

U kunt een momentopname van één share verwijderen.

file_service.delete_share(share_name, snapshot=snapshot_id)

Een bestand verwijderen

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

Als u een bestand wilt verwijderen, roept u delete_file aan.

In het volgende codevoorbeeld ziet u hoe u een bestand verwijdert:

file_service.delete_file('myshare', None, 'myfile')

Share verwijderen wanneer momentopnamen van share bestaan

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

Een share met momentopnamen kan niet worden verwijderd, tenzij eerst alle momentopnamen worden verwijderd.

In het volgende codevoorbeeld ziet u hoe u een share verwijdert:

file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)