如何通过 Python Azure SDK 了解 Azure blob 对象的大小
How to know the size of an Azure blob object via Python Azure SDK
在 Microsoft Azure documentation for Python developers 之后。 azure.storage.blob.models.Blob
class 确实有一个名为 __sizeof__()
的私有方法。但它 returns 一个常量值 16,无论 blob 是空的(0 字节)还是 1 GB。是否有任何 method/attribute 的 blob 对象可以动态检查对象的大小?
更清楚地说,这就是我的源代码的样子。
for i in blobService.list_blobs(container_name=container, prefix=path):
if i.name.endswith('.json') and r'CIJSONTM.json/part' in i.name:
#do some stuffs
但是,数据池中包含许多具有合法名称的空blob,在我#do some stuffs
之前,我想对大小进行额外的检查,以判断我是否正在处理一个空blob。
此外,如果不是 blob 对象的大小,__sizeof__()
方法究竟能提供什么奖励?
I want to have an additional check on the size to judge whether I am dealing with an empty blob.
我们可以使用 BlobProperties().content_length 来检查它是否是一个空的 blob。
BlockBlobService.get_blob_properties(block_blob_service,container_name,blob_name).properties.content_length
以下是获取blob的演示代码content_length:
from azure.storage.blob import BlockBlobService
block_blob_service = BlockBlobService(account_name='accoutName', account_key='accountKey')
container_name ='containerName'
block_blob_service.create_container(container_name)
generator = block_blob_service.list_blobs(container_name)
for blob in generator:
length = BlockBlobService.get_blob_properties(block_blob_service,container_name,blob.name).properties.content_length
print("\t Blob name: " + blob.name)
print(length)
from azure.storage.blob import BlobServiceClient
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
blob_list = blob_service_client.get_container_client(my_container).list_blobs()
for blob in blob_list:
print("\t" + blob.name)
print('\tsize=', blob.size)
在 Microsoft Azure documentation for Python developers 之后。 azure.storage.blob.models.Blob
class 确实有一个名为 __sizeof__()
的私有方法。但它 returns 一个常量值 16,无论 blob 是空的(0 字节)还是 1 GB。是否有任何 method/attribute 的 blob 对象可以动态检查对象的大小?
更清楚地说,这就是我的源代码的样子。
for i in blobService.list_blobs(container_name=container, prefix=path):
if i.name.endswith('.json') and r'CIJSONTM.json/part' in i.name:
#do some stuffs
但是,数据池中包含许多具有合法名称的空blob,在我#do some stuffs
之前,我想对大小进行额外的检查,以判断我是否正在处理一个空blob。
此外,如果不是 blob 对象的大小,__sizeof__()
方法究竟能提供什么奖励?
I want to have an additional check on the size to judge whether I am dealing with an empty blob.
我们可以使用 BlobProperties().content_length 来检查它是否是一个空的 blob。
BlockBlobService.get_blob_properties(block_blob_service,container_name,blob_name).properties.content_length
以下是获取blob的演示代码content_length:
from azure.storage.blob import BlockBlobService
block_blob_service = BlockBlobService(account_name='accoutName', account_key='accountKey')
container_name ='containerName'
block_blob_service.create_container(container_name)
generator = block_blob_service.list_blobs(container_name)
for blob in generator:
length = BlockBlobService.get_blob_properties(block_blob_service,container_name,blob.name).properties.content_length
print("\t Blob name: " + blob.name)
print(length)
from azure.storage.blob import BlobServiceClient
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
blob_list = blob_service_client.get_container_client(my_container).list_blobs()
for blob in blob_list:
print("\t" + blob.name)
print('\tsize=', blob.size)