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)