Przykłady kodu udziału plików platformy Azure przy użyciu bibliotek klienckich języka Python w wersji 2
W tym artykule przedstawiono przykłady kodu, które używają wersji 2 biblioteki klienta udziału plików platformy Azure dla języka Python.
31 marca 2023 r. wycofaliśmy obsługę bibliotek zestawu Azure SDK, które nie są zgodne z bieżącymi wytycznymi dotyczącymi zestawu Azure SDK. Nowe biblioteki zestawu Azure SDK są regularnie aktualizowane w celu zapewnienia spójnych środowisk i poprawy stanu zabezpieczeń. Zaleca się przejście do nowych bibliotek zestawu Azure SDK w celu skorzystania z nowych funkcji i krytycznych aktualizacji zabezpieczeń.
Mimo że starsze biblioteki mogą być nadal używane poza 31 marca 2023 r., nie będą już otrzymywać oficjalnej pomocy technicznej i aktualizacji od firmy Microsoft. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu pomocy technicznej.
Wymagania wstępne
Zainstaluj następujący pakiet przy użyciu polecenia pip install
:
pip install azure-storage-file
Dodaj następującą import
instrukcję:
from azure.storage.file import FileService
Tworzenie udziału plików platformy Azure
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Poniższy przykład kodu używa obiektu FileService do utworzenia udziału, jeśli nie istnieje.
file_service.create_share('myshare')
Tworzenie katalogu
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Magazyn można organizować, umieszczając pliki wewnątrz podkatalogów zamiast umieszczać wszystkie z nich w katalogu głównym.
Poniższy kod utworzy podkatalog o nazwie sampledir w katalogu głównym.
file_service.create_directory('myshare', 'sampledir')
Przekazywanie pliku
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
W tej sekcji dowiesz się, jak przekazać plik z magazynu lokalnego do usługi Azure Files.
Udział plików platformy Azure zawiera co najmniej katalog główny, w którym mogą znajdować się pliki. Aby utworzyć plik i przekazać dane, użyj dowolnej z następujących metod:
Te metody wykonują niezbędne fragmenty, gdy rozmiar danych przekracza 64 MiB.
create_file_from_path
przekazuje zawartość pliku z określonej ścieżki i create_file_from_stream
przekazuje zawartość z już otwartego pliku/strumienia. create_file_from_bytes
przekazuje tablicę bajtów i create_file_from_text
przekazuje określoną wartość tekstową przy użyciu określonego kodowania (wartość domyślna to UTF-8).
Poniższy przykład przekazuje zawartość pliku sunset.png do pliku 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'))
Wyliczanie plików i katalogów w udziale plików platformy Azure
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Aby wyświetlić listę plików i katalogów w udziale, użyj metody list_directories_and_files . Ta metoda zwraca generator. Poniższy kod zwraca nazwę każdego pliku i katalogu w udziale do konsoli programu .
generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
print(file_or_dir.name)
Pobieranie pliku
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Aby pobrać dane z pliku, użyj dowolnej z następujących metod:
Te metody wykonują niezbędne fragmenty, gdy rozmiar danych przekracza 64 MiB.
W poniższym przykładzie pokazano, jak pobrać get_file_to_path
zawartość pliku myfile i zapisać go w pliku out-sunset.png .
file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')
Tworzenie migawki udziału
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Możesz utworzyć kopię całego udziału plików w czasie.
snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot
Tworzenie migawki udziału z metadanymi
metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)
Wyświetlanie listy udziałów i migawek
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Możesz wyświetlić listę wszystkich migawek dla określonego udziału.
shares = list(file_service.list_shares(include_snapshots=True))
Przeglądanie migawki udziału
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Możesz przeglądać każdą migawkę udziału, aby pobrać pliki i katalogi z tego punktu w czasie.
directories_and_files = list(
file_service.list_directories_and_files(share_name, snapshot=snapshot_id))
Pobieranie pliku z migawki udziału
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Plik można pobrać z migawki udziału. Dzięki temu można przywrócić poprzednią wersję pliku.
with open(FILE_PATH, 'wb') as stream:
file = file_service.get_file_to_stream(
share_name, directory_name, file_name, stream, snapshot=snapshot_id)
Usuwanie migawki pojedynczego udziału
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Można usunąć pojedynczą migawkę udziału.
file_service.delete_share(share_name, snapshot=snapshot_id)
Usuwanie pliku
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Aby usunąć plik, wywołaj delete_file.
W poniższym przykładzie kodu pokazano, jak usunąć plik:
file_service.delete_file('myshare', None, 'myfile')
Usuwanie udziału, gdy istnieją migawki udziału
Powiązany artykuł: Tworzenie aplikacji dla usługi Azure Files przy użyciu języka Python
Nie można usunąć udziału zawierającego migawki, chyba że wszystkie migawki zostaną najpierw usunięte.
W poniższym przykładzie kodu pokazano, jak usunąć udział:
file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)