Udostępnij za pośrednictwem


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)