Aracılığıyla paylaş


Azure Blob Depolama ve Python'ı kullanmaya başlama

Bu makalede, Python için Azure Blob Depolama istemci kitaplığını kullanarak Azure Blob Depolama'ya nasıl bağlanabileceğiniz gösterilmektedir. Bağlandıktan sonra kodunuzun Blob Depolama hizmetinin kapsayıcıları, blobları ve özellikleri üzerinde nasıl çalışabileceğini öğrenmek için geliştirici kılavuzlarını kullanın.

Tam bir örnekle başlamak istiyorsanız bkz . Hızlı Başlangıç: Python için Azure Blob Depolama istemci kitaplığı.

API başvurusu | Paket (PyPi) | Kitaplık kaynak kodu | Örnekleri | Geri bildirimde bulunmak

Prerequisites

Projenizi ayarlayın

Bu bölüm, Python için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere bir proje hazırlama işleminde size yol gösterir.

Proje dizininizden komutunu kullanarak pip install Azure Blob Depolama ve Azure Identity istemci kitaplıkları için paketleri yükleyin. Azure hizmetlerine parolasız bağlantılar için azure-identity paketi gereklidir.

pip install azure-storage-blob azure-identity

Ardından kod dosyanızı açın ve gerekli içeri aktarma deyimlerini ekleyin. Bu örnekte, .py dosyamıza aşağıdakileri ekleyeceğiz:

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

Blob istemci kitaplığı bilgileri:

  • azure.storage.blob: Hizmet, kapsayıcılar ve bloblar üzerinde çalışmak için kullanabileceğiniz birincil sınıfları (istemci nesneleri) içerir.

Zaman uyumsuz programlama

Python için Azure Blob Depolama istemci kitaplığı hem zaman uyumlu hem de zaman uyumsuz API'leri destekler. Python'ın asyncio kütüphanesine dayanan asenkron API'ler.

Projenizde zaman uyumsuz API'leri kullanmak için şu adımları izleyin:

  • Zaman uyumsuz bir aktarım, örneğin aiohttp, yükleyin. aiohttp ve azure-storage-blob'i isteğe bağlı bağımlılık yükleme komutunu kullanarak birlikte yükleyebilirsiniz. Bu örnekte aşağıdaki pip install komutu kullanacağız:

    pip install azure-storage-blob[aio]
    
  • Kod dosyanızı açın ve gerekli içe aktarma ifadelerini ekleyin. Bu örnekte, .py dosyamıza aşağıdakileri ekleyeceğiz:

    import asyncio
    
    from azure.identity.aio import DefaultAzureCredential
    from azure.storage.blob.aio import BlobServiceClient, BlobClient, ContainerClient
    

    Deyimi import asyncio yalnızca kodunuzda kitaplığı kullanıyorsanız gereklidir. Geliştirici kılavuzu makalelerindeki örneklerde asyncio kitaplığın kullanıldığı için buraya eklenmiştir, açıklık getirmek amacıyla.

  • Veri kaynaklarıyla çalışmaya başlamak için kullanarak async with bir istemci nesnesi oluşturun. Yalnızca en üst düzey istemcinin kullanması async withgerekir; bu istemciden oluşturulan diğer istemciler aynı bağlantı havuzunu paylaşır. Bu örnekte, kullanarak BlobServiceClientbir async with nesne oluşturacak ve ardından bir ContainerClient nesnesi oluşturacağız:

    async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
        container_client = blob_service_client.get_container_client(container="sample-container")
    

    Daha fazla bilgi edinmek için Erişim yetkilendirme ve Blob Depolama'ya bağlanma bölümündeki asenkron örneklere bakın.

Blob asenkron istemci kitaplığı bilgileri

  • azure.storage.blob.aio: Hizmet, kapsayıcılar ve bloblar üzerinde zaman uyumsuz olarak çalışmak için kullanabileceğiniz birincil sınıfları içerir.

Erişimi yetkilendirme ve Blob Depolama'ya bağlanma

Bir uygulamayı Blob Depolama'ya bağlamak için BlobServiceClient sınıfının bir örneğini oluşturun. Bu nesne, depolama hesabı düzeyinde veri kaynaklarıyla etkileşim kurmak için başlangıç noktanızdır. Depolama hesabı ve kapsayıcıları üzerinde işlemler yapmak için bunu kullanabilirsiniz. Çalışmanız gereken kaynağa bağlı olarak kapsayıcı istemcileri veya blob istemcileri oluşturmak için hizmet istemcisini de kullanabilirsiniz.

en iyi yöntemler de dahil olmak üzere istemci nesneleri oluşturma ve yönetme hakkında daha fazla bilgi edinmek için bkz . Veri kaynaklarıyla etkileşim kuran istemci nesneleri oluşturma ve yönetme.

Microsoft Entra yetkilendirme belirteci, hesap erişim anahtarı veya paylaşılan erişim imzası (SAS) kullanarak bir nesneyi yetkilandırabilirsiniz BlobServiceClient . En iyi güvenlik için Microsoft, blob verilerine yönelik istekleri yetkilendirmek için yönetilen kimliklerle Microsoft Entra Id kullanılmasını önerir. Daha fazla bilgi için bkz . Microsoft Entra Id kullanarak bloblara erişimi yetkilendirme.

Microsoft Entra Id ile yetkilendirmek için bir güvenlik sorumlusu kullanmanız gerekir. İhtiyacınız olan güvenlik sorumlusu türü, uygulamanızın nerede çalıştığına bağlıdır. Kılavuz olarak aşağıdaki tabloyu kullanın:

Uygulamanın çalıştığı yer Güvenlik sorumlusu Guidance
Yerel makine (geliştirme ve test) Servis Principal Uygulamayı kaydetmeyi, bir Microsoft Entra grubu ayarlamayı, rolleri atamayı ve ortam değişkenlerini yapılandırmayı öğrenmek için bkz . Geliştirici hizmet sorumlularını kullanarak erişimi yetkilendirme
Yerel makine (geliştirme ve test) Kullanıcı kimliği Microsoft Entra grubu ayarlamayı, rol atamayı ve Azure'da oturum açmayı öğrenmek için bkz . Geliştirici kimlik bilgilerini kullanarak erişimi yetkilendirme
Azure'da barındırılan İdare edilen kimlik Azure'da barındırılan uygulamalardan yönetilen kimlik kullanarak erişimi yetkilendirme hakkında bilgi almak için Yönetilen kimlik etkinleştirme ve rolleri atama< /c0> konusuna bakın.
Azure dışında barındırılan (örneğin, şirket içi uygulamalar) Servis Principal Uygulamayı kaydetmeyi, rolleri atamayı ve ortam değişkenlerini yapılandırmayı öğrenmek için bkz . Uygulama hizmet sorumlusu kullanarak şirket içi uygulamalardan erişimi yetkilendirme

DefaultAzureCredential kullanarak erişimi yetkilendirme

Erişimi yetkilendirmenin ve Blob Depolama'ya bağlanmanın kolay ve güvenli bir yolu, DefaultAzureCredential örneği oluşturarak bir OAuth belirteci almaktır. Ardından bu kimlik bilgilerini kullanarak bir BlobServiceClient nesnesi oluşturabilirsiniz.

Aşağıdaki örnek kullanarak BlobServiceClientbir DefaultAzureCredential nesne oluşturur:

def get_blob_service_client_token_credential(self):
    # TODO: Replace <storage-account-name> with your actual storage account name
    account_url = "https://<storage-account-name>.blob.core.windows.net"
    credential = DefaultAzureCredential()

    # Create the BlobServiceClient object
    blob_service_client = BlobServiceClient(account_url, credential=credential)

    return blob_service_client

Projeniz eşzamansız API'ler kullanıyorsa, BlobServiceClientasync with kullanarak örneği oluşturun.

# TODO: Replace <storage-account-name> with your actual storage account name
account_url = "https://<storage-account-name>.blob.core.windows.net"
credential = DefaultAzureCredential()

async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
    # Work with data resources in the storage account

Uygulamanızı oluşturun

Azure Blob Depolama'daki veri kaynaklarıyla çalışacak uygulamalar oluştururken kodunuz öncelikli olarak üç kaynak türüyle etkileşim kurar: depolama hesapları, kapsayıcılar ve bloblar. Bu kaynak türleri, birbirleriyle ilişkileri ve uygulamaların kaynaklarla nasıl etkileşim kurduğu hakkında daha fazla bilgi edinmek için bkz . Uygulamaların Blob Depolama veri kaynaklarıyla nasıl etkileşim kuracaklarını anlama.

Aşağıdaki kılavuzlarda Python için Azure Depolama istemci kitaplığını kullanarak verilere erişme ve belirli eylemleri gerçekleştirme adımları gösterilmektedir:

Guide Description
Yeniden deneme ilkesi yapılandırma İstemci işlemleri için yeniden deneme ilkeleri uygulayın.
Blobları kopyalama Blobu bir konumdan diğerine kopyalayın.
Kapsayıcı oluşturma Blob kapsayıcıları oluştur.
Kullanıcı Yetkilendirme SAS’i Oluşturma Kapsayıcı veya blob için kullanıcı delegasyonu SAS oluşturun.
Blob kiralamalarını oluştur ve yönet Blob üzerinde bir kilit oluşturun ve yönetin.
Kapsayıcı kiralamaları oluşturma ve yönetme Bir konteynerde kilit oluşturma ve yönetme.
Blobları silme ve geri yükleme Blobları silin ve geçici olarak silinen blobları geri yükleyin.
Kapsayıcıları silme ve geri yükleme Kapsayıcıları silin ve geçici olarak silinen kapsayıcıları geri yükleyin.
Blobları indirme Dizeleri, akışları ve dosya yollarını kullanarak blobları indirin.
Etiketleri kullanarak blobları bulma Etiketleri ayarlayıp alın ve blobları bulmak için etiketleri kullanın.
Blobları listeleme Blobları farklı şekillerde listeleyin.
Kapsayıcıları listeleme Bir hesaptaki kapsayıcıları ve listeyi özelleştirmek için kullanılabilecek çeşitli seçenekleri listeleyin.
Özellikleri ve meta verileri (bloblar) yönetme Bloblar için özellikleri ve meta verileri alın ve ayarlayın.
Özellikleri ve meta verileri (kapsayıcılar) yönetme Kapsayıcıların özelliklerini ve meta verilerini alın ve ayarlayın.
Veri aktarımları için performans ayarlama Veri aktarımı işlemleri için performansı iyileştirme.
Blob erişim katmanını ayarlama veya değiştirme Blok blobu için erişim katmanını ayarlayın veya değiştirin.
Blobları yükle Dizeleri, akışları, dosya yollarını ve diğer yöntemleri kullanarak blobları yüklemeyi öğrenin.