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)