Delen via


Codevoorbeelden voor Azure File Share met python versie 2-clientbibliotheken

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 buiten gebruik gesteld die niet voldoen aan de huidige Azure SDK-richtlijnen. De nieuwe Azure SDK-bibliotheken worden regelmatig bijgewerkt om consistente ervaringen te stimuleren en je beveiligingspostuur te versterken. Het is raadzaam om 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 van de buitengebruikstelling van de 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 ordenen door bestanden in submappen te plaatsen in plaats van ze allemaal in de hoofdmap te plaatsen.

Met de onderstaande code maakt u een submap met de naam sampledir 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:

Met deze methoden wordt de benodigde segmentering uitgevoerd 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 ingesteld op 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 opsommen in een Azure-bestandsshare

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

Als u de bestanden en mappen in een share wilt weergeven, gebruikt u de methode list_directories_and_files . 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:

Met deze methoden wordt de benodigde segmentering uitgevoerd wanneer de grootte van de gegevens groter is dan 64 MiB.

In het volgende voorbeeld ziet u hoe get_file_to_path u de inhoud van het bestand myfile downloadt en opslaat in het out-sunset.png bestand.

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

Een momentopname van de share maken

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

U kunt een tijdskopie van uw hele bestandsshare maken.

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

Momentopname van delen 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 eerdere 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 shares bestaan

Gerelateerd artikel: Ontwikkelen voor Azure Files met Python

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

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

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