Python sürüm 2 istemci kitaplıklarını kullanan Azure Dosya Paylaşımı kod örnekleri
Bu makalede, Python için Azure Dosya Paylaşımı istemci kitaplığının 2. sürümünü kullanan kod örnekleri gösterilmektedir.
31 Mart 2023'te , geçerli Azure SDK yönergelerine uymayan Azure SDK kitaplıkları desteğini kullanımdan kaldırdık. Yeni Azure SDK kitaplıkları, tutarlı deneyimler sağlamak ve güvenlik duruşunuzu güçlendirmek için düzenli olarak güncelleştirilir. Yeni özelliklerden ve kritik güvenlik güncelleştirmelerinden yararlanmak için yeni Azure SDK kitaplıklarına geçmeniz önerilir.
Eski kitaplıklar 31 Mart 2023'ten sonra da kullanılabilse de artık Microsoft'tan resmi destek ve güncelleştirme almayacaktır. Daha fazla bilgi için bkz. destek kullanımdan kaldırma duyurusu.
Önkoşullar
kullanarak pip install
aşağıdaki paketi yükleyin:
pip install azure-storage-file
Aşağıdaki import
deyimi ekleyin:
from azure.storage.file import FileService
Azure dosya paylaşımı oluşturma
İlgili makale: Python ile Azure Dosyalar için geliştirme
Aşağıdaki kod örneği, mevcut değilse paylaşımı oluşturmak için bir FileService nesnesi kullanır.
file_service.create_share('myshare')
Dizin oluşturma
İlgili makale: Python ile Azure Dosyalar için geliştirme
Dosyaları kök dizinde bulundurmak yerine alt dizinlere yerleştirerek depolamayı düzenleyebilirsiniz.
Aşağıdaki kod, kök dizinin altında sampledir adlı bir alt dizin oluşturur.
file_service.create_directory('myshare', 'sampledir')
Dosyayı karşıya yükleme
İlgili makale: Python ile Azure Dosyalar için geliştirme
Bu bölümde, yerel depolamadan Azure Dosyalar'e dosya yüklemeyi öğreneceksiniz.
Azure dosya paylaşımı en azından dosyaların bulunabileceği bir kök dizin içerir. Dosya oluşturmak ve verileri karşıya yüklemek için aşağıdaki yöntemlerden birini kullanın:
Bu yöntemler, verilerin boyutu 64 MiB'yi aştığında gerekli öbekleme işlemini gerçekleştirir.
create_file_from_path
belirtilen yoldan bir dosyanın içeriğini karşıya yükler ve create_file_from_stream
içeriği zaten açık olan bir dosyadan/akıştan karşıya yükler. create_file_from_bytes
bir bayt dizisini karşıya yükler ve create_file_from_text
belirtilen kodlamayı kullanarak belirtilen metin değerini (varsayılan olarak UTF-8'e) yükler.
Aşağıdaki örnek ,sunset.png dosyasının içeriğini myfile dosyasına yükler.
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'))
Azure dosya paylaşımındaki dosyaları ve dizinleri listeleme
İlgili makale: Python ile Azure Dosyalar için geliştirme
Paylaşımdaki dosyaları ve dizinleri listelemek için list_directories_and_files yöntemini kullanın. Bu yöntem bir oluşturucu döndürür. Aşağıdaki kod, konsoldaki bir paylaşımdaki her dosyanın ve dizinin adını döndürür.
generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
print(file_or_dir.name)
Dosya indirme
İlgili makale: Python ile Azure Dosyalar için geliştirme
Bir dosyadan veri indirmek için aşağıdaki yöntemlerden birini kullanın:
Bu yöntemler, verilerin boyutu 64 MiB'yi aştığında gerekli öbekleme işlemini gerçekleştirir.
Aşağıdaki örnekte, myfile dosyasının içeriğini indirmek ve out-sunset.png dosyasında depolamak için komutunun kullanılması get_file_to_path
gösterilmektedir.
file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')
Paylaşım anlık görüntüsü oluşturma
İlgili makale: Python ile Azure Dosyalar için geliştirme
Dosya paylaşımınızın tamamının belirli bir noktada kopyasını oluşturabilirsiniz.
snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot
Meta verilerle paylaşım anlık görüntüsü oluşturma
metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)
Paylaşımları ve anlık görüntüleri listeleme
İlgili makale: Python ile Azure Dosyalar için geliştirme
Belirli bir paylaşım için tüm anlık görüntüleri listeleyebilirsiniz.
shares = list(file_service.list_shares(include_snapshots=True))
Paylaşım anlık görüntüsüne göz atma
İlgili makale: Python ile Azure Dosyalar için geliştirme
Belirli bir noktadan dosya ve dizinleri almak için her paylaşım anlık görüntüsüne göz atabilirsiniz.
directories_and_files = list(
file_service.list_directories_and_files(share_name, snapshot=snapshot_id))
Paylaşım anlık görüntüsünden dosya alma
İlgili makale: Python ile Azure Dosyalar için geliştirme
Paylaşım anlık görüntüsünden dosya indirebilirsiniz. Bu, dosyanın önceki bir sürümünü geri yüklemenize olanak tanır.
with open(FILE_PATH, 'wb') as stream:
file = file_service.get_file_to_stream(
share_name, directory_name, file_name, stream, snapshot=snapshot_id)
Tek bir paylaşım anlık görüntüsünü silme
İlgili makale: Python ile Azure Dosyalar için geliştirme
Tek bir paylaşım anlık görüntüsünü silebilirsiniz.
file_service.delete_share(share_name, snapshot=snapshot_id)
Dosyayı silme
İlgili makale: Python ile Azure Dosyalar için geliştirme
Bir dosyayı silmek için delete_file'ı arayın.
Aşağıdaki kod örneğinde bir dosyanın nasıl silineceği gösterilmektedir:
file_service.delete_file('myshare', None, 'myfile')
Paylaşım anlık görüntüleri mevcut olduğunda paylaşımı silme
İlgili makale: Python ile Azure Dosyalar için geliştirme
Anlık görüntüleri içeren bir paylaşım, önce tüm anlık görüntüler silinmediği sürece silinemez.
Aşağıdaki kod örneğinde paylaşımın nasıl silineceği gösterilmektedir:
file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin