Bagikan melalui


Sampel kode Azure File Share menggunakan pustaka klien Python versi 2

Artikel ini memperlihatkan sampel kode yang menggunakan versi 2 dari pustaka klien Azure File Share untuk Python.

Pada 31 Maret 2023, kami menghentikan dukungan untuk pustaka Azure SDK yang tidak sesuai dengan panduan Azure SDK saat ini. Pustaka Azure SDK baru diperbarui secara berkala untuk mendorong pengalaman yang konsisten dan memperkuat postur keamanan Anda. Disarankan agar Anda beralih ke pustaka Azure SDK baru untuk memanfaatkan kemampuan baru dan pembaruan keamanan penting.

Meskipun pustaka yang lebih lama masih dapat digunakan melebihi 31 Maret 2023, pustaka tersebut tidak akan lagi menerima dukungan dan pembaruan resmi dari Microsoft. Untuk informasi selengkapnya, lihat pengumuman penghentian dukungan.

Prasyarat

Instal paket berikut menggunakan pip install:

pip install azure-storage-file

Tambahkan pernyataan berikut import :

from azure.storage.file import FileService

Membuat berbagi file Azure

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Contoh kode berikut menggunakan objek FileService untuk membuat berbagi jika tidak ada.

file_service.create_share('myshare')

Buat direktori

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Anda dapat mengatur penyimpanan dengan menyimpan berkas di dalam subdirektori alih-alih meletakkan semuanya dalam direktori akar.

Kode di bawah ini akan membuat subdirektori bernama sampledir di bawah akar direktori.

file_service.create_directory('myshare', 'sampledir')

Unggah berkas

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Di bagian ini, Anda akan mempelajari cara mengunggah file dari penyimpanan lokal ke Azure Files.

Setidaknya, berbagi berkas Azure berisi direktori akar di mana berkas dapat berada. Untuk membuat file dan mengunggah data, gunakan salah satu metode berikut:

Metode ini melakukan penggugusan yang diperlukan ketika ukuran data melebihi 64 MiB.

create_file_from_path Unggah konten berkas dari jalur yang ditentukan, dan create_file_from_stream unggah konten dari berkas/aliran yang sudah dibuka. create_file_from_bytes Unggah array byte, dan create_file_from_text unggah nilai teks yang ditentukan menggunakan pengkodean yang ditentukan (default ke UTF-8).

Contoh berikut mengunggah konten berkas sunset.png ke dalam berkas 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'))

Menghitung berkas dan direktori dalam berbagi berkas Azure

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Untuk mencantumkan berkas dan direktori dalam subdirektori, gunakan metode list_directories_and_files. Metode ini mengembalikan generator. Kode berikut menghasilkan nama di setiap berkas dan direktori dalam berbagi ke konsol.

generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
    print(file_or_dir.name)

Unduh berkas

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Untuk mengunduh data dari file, gunakan salah satu metode berikut:

Metode ini melakukan penggugusan yang diperlukan ketika ukuran data melebihi 64 MiB.

Contoh berikut menunjukkan penggunaan get_file_to_path untuk mengunduh konten berkas myfile dan menyimpannya ke berkas out-sunset.png anda.

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

Membuat berbagi rekam snapshot

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Anda dapat membuat salinan waktu poin dari seluruh berbagi berkas Anda.

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

Membuat berbagi snapshot dengan metadata

metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)

Daftar berbagi dan snapshot

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Anda dapat mencantumkan semua snapshot untuk bagian tertentu.

shares = list(file_service.list_shares(include_snapshots=True))

Telusuri berbagi rekam snapshot

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Anda dapat menelusuri setiap snapshot berbagi untuk mengambil berkas dan direktori dari waktu tersebut.

directories_and_files = list(
    file_service.list_directories_and_files(share_name, snapshot=snapshot_id))

Dapatkan berkas dari snapshot berbagi

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Anda dapat mengunduh berkas dari snapshot berbagi. Ini memampukan Anda memulihkan versi berkas sebelumnya.

with open(FILE_PATH, 'wb') as stream:
    file = file_service.get_file_to_stream(
        share_name, directory_name, file_name, stream, snapshot=snapshot_id)

Menghapus satu berbagi snapshot

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Anda dapat menghapus satu berbagi snapshot.

file_service.delete_share(share_name, snapshot=snapshot_id)

Hapus berkas

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Untuk menghapus berkas, hubungi delete_file.

Contoh kode berikut menunjukkan cara menghapus file:

file_service.delete_file('myshare', None, 'myfile')

Hapus bagikan saat berbagi snapshot ada

Artikel terkait: Mengembangkan untuk Azure Files dengan Python

Berbagi yang berisi snapshot tidak dapat dihapus kecuali semua snapshot dihapus terlebih dahulu.

Contoh kode berikut menunjukkan cara menghapus berbagi:

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