Hızlı Başlangıç: Python v2.1 SDK ile blobları yönetme

Bu hızlı başlangıçta Python kullanarak blobları yönetmeyi öğreneceksiniz. Bloblar görüntüler, belgeler, akış medyası ve arşiv verileri dahil olmak üzere büyük miktarda metin veya ikili veri tutabilen nesnelerdir. Blobları karşıya yükleyecek, indirip listeleyecek ve kapsayıcı oluşturup sileceksiniz.

Not

Bu hızlı başlangıçta Azure Blob depolama istemci kitaplığının eski bir sürümü kullanılır. En son sürümü kullanmaya başlamak için bkz . Hızlı Başlangıç: Python v12 SDK ile blobları yönetme.

Önkoşullar

Örnek uygulamayı indirin:

Bu hızlı başlangıçtaki örnek uygulama, temel bir Python uygulamasıdır.

Uygulamayı geliştirme ortamınıza indirmek için aşağıdaki git komutunu kullanın.

git clone https://github.com/Azure-Samples/storage-blobs-python-quickstart.git 

Python programını gözden geçirmek için deponun kökündeki example.py dosyasını açın.

Azure portalından kimlik bilgilerinizi kopyalama

Örnek uygulamanın, depolama hesabınıza erişim yetkisi vermesi gerekir. Uygulamaya depolama hesabı kimlik bilgilerinizi bağlantı dizesi biçiminde sağlayın. Depolama hesabınızın kimlik bilgilerini görüntülemek için:

  1. Azure portal depolama hesabınıza gidin.

  2. Depolama hesabına genel bakışın Ayarlar bölümünde Erişim anahtarları'nı seçerek hesap erişim anahtarlarınızı ve bağlantı dizenizi görüntüleyin.

  3. Yetkilendirme için gerekecek olan depolama hesabınızın adını not edin.

  4. anahtar1 altında Anahtar değerini bulun ve kopyala'yı seçerek hesap anahtarını kopyalayın.

    Screenshot showing how to copy your account key from the Azure portal

Depolama bağlantı dizelerinizi yapılandırma

Uygulamada, BlockBlobService nesnesi oluşturmak için depolama hesabı adınızı ve hesap anahtarınızı sağlayın.

  1. IDE'nizdeki Çözüm Gezgini'nde example.py dosyasını açın.

  2. accountname ve accountkey değerlerini depolama hesabı adınız ve anahtarınız ile değiştirin:

    block_blob_service = BlockBlobService(
        account_name='accountname', account_key='accountkey')
    
  3. Dosyayı kaydedin ve kapatın.

Örneği çalıştırma

Örnek program Belgeler klasörünüzde bir test dosyası oluşturur, dosyayı Blob depolamaya yükler, dosyadaki blobları listeler ve dosyayı yeni bir adla indirir.

  1. Bağımlılıkları yükleyin:

    pip install azure-storage-blob==2.1.0
    
  2. Örnek uygulamaya gidin:

    cd storage-blobs-python-quickstart
    
  3. Örneği çalıştırın:

    python example.py
    

    Aşağıdaki çıkışa benzer iletiler görürsünüz:

    Temp file = C:\Users\azureuser\Documents\QuickStart_9f4ed0f9-22d3-43e1-98d0-8b2c05c01078.txt
    
    Uploading to Blob storage as blobQuickStart_9f4ed0f9-22d3-43e1-98d0-8b2c05c01078.txt
    
    List blobs in the container
             Blob name: QuickStart_9f4ed0f9-22d3-43e1-98d0-8b2c05c01078.txt
    
    Downloading blob to     C:\Users\azureuser\Documents\QuickStart_9f4ed0f9-22d3-43e1-98d0-8b2c05c01078_DOWNLOADED.txt
    
  4. Devam etmeden önce Belgeler klasörünüze gidin ve iki dosyayı denetleyin.

    • <QuickStart_universally-unique-identifier>
    • <QuickStart_iversally-unique-identifier>_DOWNLOADED
  5. Dosyaları açarak aynı olduklarını görebilirsiniz.

    Azure Depolama Gezgini gibi bir araç da kullanabilirsiniz. Dosyaları Blob depolamada görüntülemek için iyidir. Azure Depolama Gezgini, depolama hesabı bilgilerinize erişmenizi sağlayan ücretsiz bir platformlar arası araçtır.

  6. Dosyaları inceledikten sonra, örneği bitirmek ve test dosyalarını silmek için herhangi bir tuşa basın.

Örnek kod hakkında bilgi edinin

Artık örnek dosyanın işlevini gördüğünüze göre, koda göz atmak için example.py dosyasını açabilirsiniz.

Depolama nesneleriyle ilgili başvuruları alma

Bu bölümde nesne örneği ve yeni bir kapsayıcı oluşturacak ve ardından kapsayıcıdaki izinleri bloblar herkese açık olacak şekilde ayarlayacaksınız. kapsayıcısını quickstartblobsçağıracaksınız.

# Create the BlockBlockService that the system uses to call the Blob service for the storage account.
block_blob_service = BlockBlobService(
    account_name='accountname', account_key='accountkey')

# Create a container called 'quickstartblobs'.
container_name = 'quickstartblobs'
block_blob_service.create_container(container_name)

# Set the permission so the blobs are public.
block_blob_service.set_container_acl(
    container_name, public_access=PublicAccess.Container)

İlk önce, Blob depolamaya erişmek ve Blob depolamayı yönetmek için kullanılan nesnelere başvuru oluşturursunuz. Bu nesneler birbirleri üzerinde derlenir ve her bir dosya, listede yanında yer alan dosya tarafından kullanılır.

  • Depolama hesabınızdaki Blob hizmetine işaret eden bir BlobService nesne örneği oluşturun.

  • Eriştiğiniz kapsayıcıyı temsil eden bir CloudBlobContainer nesne örneği oluşturun. Sistem, bloblarınızı, dosyalarınızı düzenlemek için bilgisayarınızdaki klasörleri kullandığınız gibi düzenlemek için kapsayıcıları kullanır.

Bulut Blobu kapsayıcınız olduktan sonra, ilgilendiğiniz bloba işaret eden CloudBlockBlob nesnesinin örneğini oluşturun. Ardından blobu gerektiği gibi karşıya yükleyebilir, indirebilir ve kopyalayabilirsiniz.

Önemli

Kapsayıcı adlarının küçük harfle yazılması gerekir. Kapsayıcı ve blob adları hakkında daha fazla bilgi için bkz. Kapsayıcıları, Blobları ve Meta Verileri Adlandırma ve Buna Başvurma.

Blobları kapsayıcıya yükleme

Blob depolama blok blobları, ekleme bloblarını ve sayfa bloblarını destekler. Blok bloblarının boyutu 4,7 TB’yi bulabilir ve bu bloblar Excel elektronik tablolarından büyük video dosyalarına kadar birçok türde olabilir. Bir dosyaya yazıp daha fazla bilgi eklemeye devam etmek istediğinizde günlük kaydı için ekleme bloblarını kullanabilirsiniz. Sayfa blobları öncelikli olarak hizmet olarak altyapı sanal makinelerini (IaaS VM'leri) destekleyen Sanal Sabit Disk (VHD) dosyaları için kullanılır. Blok blobları, en sık kullanılan bloblardır. Bu hızlı başlangıçta blok blobları kullanılır.

Bir dosyayı bloba yüklemek için, yerel diskinizdeki dizin adıyla dosya adını birleştirerek dosyanın tam yolunu alın. Sonra, dosyayı belirtilen yola create_blob_from_path yöntemiyle yükleyebilirsiniz.

Örnek kod, sistemin karşıya yükleme ve indirme için kullandığı yerel bir dosya oluşturur ve sistemin karşıya yüklediği dosyayı full_path_to_file ve blobun adını local_file_name olarak depolar. Bu örnek, adlı kapsayıcınıza quickstartblobsdosyasını yükler:

# Create a file in Documents to test the upload and download.
local_path = os.path.expanduser("~\Documents")
local_file_name = "QuickStart_" + str(uuid.uuid4()) + ".txt"
full_path_to_file = os.path.join(local_path, local_file_name)

# Write text to the file.
file = open(full_path_to_file, 'w')
file.write("Hello, World!")
file.close()

print("Temp file = " + full_path_to_file)
print("\nUploading to Blob storage as blob" + local_file_name)

# Upload the created file, use local_file_name for the blob name.
block_blob_service.create_blob_from_path(
    container_name, local_file_name, full_path_to_file)

Blob depolamayla kullanabileceğiniz çeşitli karşıya yükleme yöntemleri vardır. Örneğin, bir bellek akışınız varsa create_blob_from_path yerine create_blob_from_stream yöntemini kullanabilirsiniz.

Kapsayıcıdaki blobları listeleme

Aşağıdaki kod yöntemi için list_blobs bir generator oluşturur. Kod, kapsayıcıdaki bloblar listesinde döngüye girer ve adlarını konsola yazdırır.

# List the blobs in the container.
print("\nList blobs in the container")
generator = block_blob_service.list_blobs(container_name)
for blob in generator:
    print("\t Blob name: " + blob.name)

Blobları indirme

yöntemini kullanarak get_blob_to_path blobları yerel diskinize indirin. Aşağıdaki kod daha önce karşıya yüklediğiniz blobu indirir. Sistem blob adına _DOWNLOADED ekler, böylece her iki dosyayı da yerel diskinizde görebilirsiniz.

# Download the blob(s).
# Add '_DOWNLOADED' as prefix to '.txt' so you can see both files in Documents.
full_path_to_file2 = os.path.join(local_path, local_file_name.replace(
   '.txt', '_DOWNLOADED.txt'))
print("\nDownloading blob to " + full_path_to_file2)
block_blob_service.get_blob_to_path(
    container_name, local_file_name, full_path_to_file2)

Kaynakları temizleme

Bu hızlı başlangıçta karşıya yüklenen bloblara artık ihtiyacınız kalmadığında, delete_container yöntemini kullanarak kapsayıcının tamamını silebilirsiniz. Bunun yerine tek tek dosyaları silmek için delete_blob yöntemini kullanın.

# Clean up resources. This includes the container and the temp files.
block_blob_service.delete_container(container_name)
os.remove(full_path_to_file)
os.remove(full_path_to_file2)

Bloblarla Python uygulamaları geliştirme kaynakları

Blob depolama ile Python geliştirme hakkında daha fazla bilgi için şu ek kaynaklara bakın:

İkili dosyalar ve kaynak kodu

İstemci kitaplığı başvurusu ve örnekleri

Sonraki adımlar

Bu hızlı başlangıçta, dosyaları Python kullanarak yerel bir disk ve Azure Blob depolama arasında aktarmayı öğrendiniz.

Depolama Gezgini ve Bloblar hakkında daha fazla bilgi için bkz. azure blob depolama kaynaklarını Depolama Gezgini ile yönetme.