Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Blob kapsayıcıları, içerdikleri verilere ek olarak sistem özelliklerini ve kullanıcı tanımlı meta verileri destekler. Bu makalede Python için Azure Depolama istemci kitaplığı ile sistem özelliklerinin ve kullanıcı tanımlı meta verilerin nasıl yönetileceğini gösterilmektedir.
Zaman uyumsuz API'leri kullanarak özellikleri ve meta verileri yönetme hakkında bilgi edinmek için bkz . Kapsayıcı meta verilerini zaman uyumsuz olarak ayarlama.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Azure depolama hesabı - depolama hesabı oluşturma
- Python 3.8+
Ortamınızı ayarlama
Mevcut bir projeniz yoksa, bu bölümde Python için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere bir projenin nasıl ayarlanacağı gösterilir. Diğer ayrıntılar için bkz. Azure Blob Depolama ve Python'ı kullanmaya başlama.
Bu makaledeki kod örnekleriyle çalışmak için projenizi ayarlamak için bu adımları izleyin.
Paketleri yükleme
kullanarak pip installaşağıdaki paketleri yükleyin:
pip install azure-storage-blob azure-identity
Import ifadeleri ekle
Aşağıdaki import deyimlerini ekleyin:
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
Yetkilendirme
Yetkilendirme mekanizması, kapsayıcı özellikleri veya meta verilerle çalışmak için gerekli izinlere sahip olmalıdır. Microsoft Entra ID ile yetkilendirme için (önerilir), alma işlemleri için Azure RBAC yerleşik rolü Depolama Blob Veri Okuyucusu veya üstü, ve ayarlama işlemleri için Depolama Blob Veri Katkıda Bulunanı veya üstü gerekir. Daha fazla bilgi edinmek için Bkz. Kapsayıcı Özelliklerini Alma (REST API), Kapsayıcı Meta Verilerini Ayarlama (REST API) veya Kapsayıcı Meta Verilerini Alma (REST API)için yetkilendirme kılavuzu.
İstemci nesnesi oluşturma
Bir uygulamayı Blob Depolama'ya bağlamak için bir BlobServiceClient örneği oluşturun. Aşağıdaki örnekte yetkilendirme için kullanarak DefaultAzureCredential bir istemci nesnesinin nasıl oluşturulacağı gösterilmektedir:
# 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)
Ayrıca, belirli kapsayıcılar veya bloblar için, doğrudan veya BlobServiceClient nesnesinden istemci nesneleri oluşturabilirsiniz. İstemci 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.
Özellikler ve meta veriler hakkında
Sistem özellikleri: Sistem özellikleri her Blob Depolama kaynağında bulunur. Bazıları okunabilir veya ayarlanabilir, bazıları ise yalnızca okunabilir. Arka planda, bazı sistem özellikleri belirli standart HTTP üst bilgilerine karşılık gelir. Python için Azure Depolama istemci kitaplığı bu özellikleri sizin için korur.
Kullanıcı tanımlı meta veriler: Kullanıcı tanımlı meta veriler, Blob depolama kaynağı için belirttiğiniz bir veya daha fazla ad-değer çiftini içerir. Kaynakla birlikte ek değerleri depolamak için meta verileri kullanabilirsiniz. Meta veri değerleri yalnızca sizin amaçlarınıza yöneliktir ve kaynağın davranışını etkilemez.
Meta veri adı/değer çiftleri geçerli HTTP üst bilgileridir ve HTTP üst bilgilerini yöneten tüm kısıtlamalara uymalıdır. Meta veri adlandırma gereksinimleri hakkında daha fazla bilgi için bkz . Meta veri adları.
Kapsayıcı özelliklerini alma
Kapsayıcı özelliklerini almak için aşağıdaki yöntemi kullanın:
Aşağıdaki kod örneği bir kapsayıcının sistem özelliklerini getirir ve özellik değerlerini bir konsol penceresine yazar:
def get_properties(self, blob_service_client: BlobServiceClient, container_name):
container_client = blob_service_client.get_container_client(container=container_name)
properties = container_client.get_container_properties()
print(f"Public access type: {properties.public_access}")
print(f"Lease status: {properties.lease.status}")
print(f"Lease state: {properties.lease.state}")
print(f"Has immutability policy: {properties.has_immutability_policy}")
Meta verileri ayarlama ve alma
Meta verileri bir blob veya kapsayıcı kaynağında bir veya daha fazla ad-değer çifti olarak belirtebilirsiniz. Meta verileri ayarlamak için aşağıdaki yöntemi kullanın:
Kapsayıcı meta verilerinin ayarlanması, kapsayıcıyla ilişkili tüm mevcut meta verilerin üzerine yazılır. Tek bir ad-değer çiftini değiştirmek mümkün değildir.
Aşağıdaki kod örneği bir kapsayıcıda meta verileri ayarlar:
def set_metadata(self, blob_service_client: BlobServiceClient, container_name):
container_client = blob_service_client.get_container_client(container=container_name)
# Retrieve existing metadata, if desired
metadata = container_client.get_container_properties().metadata
more_metadata = {'docType': 'text', 'docCategory': 'reference'}
metadata.update(more_metadata)
# Set metadata on the container
container_client.set_container_metadata(metadata=metadata)
Meta verileri almak için aşağıdaki yöntemi çağırın:
Aşağıdaki örnek, meta veri değerlerini okur.
def get_metadata(self, blob_service_client: BlobServiceClient, container_name):
container_client = blob_service_client.get_container_client(container=container_name)
# Retrieve existing metadata, if desired
metadata = container_client.get_container_properties().metadata
for k, v in metadata.items():
print(k, v)
Kapsayıcı meta verilerini zaman uyumsuz şekilde ayarla
Python için Azure Blob Depolama istemci kitaplığı, kapsayıcı özelliklerini ve meta verileri zaman uyumsuz olarak yönetmeyi destekler. Proje kurulum gereksinimleri hakkında daha fazla bilgi edinmek için bkz . Zaman uyumsuz programlama.
Zaman uyumsuz API'leri kullanarak kapsayıcı meta verilerini ayarlamak için şu adımları izleyin:
Aşağıdaki import ifadelerini ekleyin:
import asyncio from azure.identity.aio import DefaultAzureCredential from azure.storage.blob.aio import BlobServiceClientkullanarak
asyncio.runprogramı çalıştırmak için kod ekleyin. Bu işlev,main()örneğimizde geçirilen eş yordamı çalıştırır veasyncioolay döngüsünü yönetir. Coroutine'ler async/await söz dizimi ile bildirilir. Bu örnekte,main()coroutine önceBlobServiceClientkullanarakasync withüst düzeyi oluşturur, ardından kapsayıcı meta verilerini ayarlayan yöntemi çağırır. Yalnızca en üst düzey istemcinin kullanmasıasync withgerektiğini unutmayın; bu istemciden oluşturulan diğer istemciler aynı bağlantı havuzunu paylaşır.async def main(): sample = ContainerSamples() # 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: await sample.set_metadata(blob_service_client, "sample-container") if __name__ == '__main__': asyncio.run(main())Kapsayıcı meta verilerini ayarlamak için kod ekleyin. Kod, zaman uyumlu örnekle aynıdır, ancak yöntem
asyncanahtar sözcüğüyle bildirilir veawaitveget_container_propertiesyöntemleri çağrılırkenset_container_metadataanahtar sözcüğü kullanılır.async def set_metadata(self, blob_service_client: BlobServiceClient, container_name): container_client = blob_service_client.get_container_client(container=container_name) # Retrieve existing metadata, if desired metadata = (await container_client.get_container_properties()).metadata more_metadata = {'docType': 'text', 'docCategory': 'reference'} metadata.update(more_metadata) # Set metadata on the container await container_client.set_container_metadata(metadata=metadata)
Bu temel kurulumla, bu makaledeki diğer örnekleri async/await sözdizimini kullanarak eşzamanlı yordamlar olarak uygulayabilirsiniz.
Kaynaklar
Python için Azure Blob Depolama istemci kitaplığını kullanarak kapsayıcı özelliklerini ve meta verilerini ayarlama ve alma hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.
Kod örnekleri
- Zaman uyumlu veya zaman uyumsuz kod örneklerini bu makaleden (GitHub) görüntüleyin
REST API işlemleri
Python için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık Python paradigmalarıyla REST API işlemleriyle etkileşim kurmanızı sağlar. Özellikleri ve meta verileri ayarlamak ve almak için istemci kitaplığı yöntemleri aşağıdaki REST API işlemlerini kullanır:
- Kapsayıcı Özelliklerini Alma (REST API)
- Kapsayıcı Meta Verilerini Ayarlama (REST API)
- Kapsayıcı Meta Verilerini Alma (REST API)
yöntemi hem get_container_properties Kapsayıcı Özelliklerini Al işlemini hem de Kapsayıcı Meta Verilerini Al işlemini çağırarak kapsayıcı özelliklerini ve meta verilerini alır.
Müşteri kitaplığı kaynakları
İlgili içerik
- Bu makale, Python için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için Python uygulamanızı oluşturma makalesinde geliştirici kılavuzu makalelerinin tam listesine bakın.