Aracılığıyla paylaş


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 installaş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)