Del*_*lla 1 python sizeof azure azure-storage-blobs azure-sdk-python
遵循针对Python开发人员的Microsoft Azure文档。该azure.storage.blob.models.Blob班确实有所谓的私有方法__sizeof__()。但是,无论blob为空(0字节)还是1 GB,它都会返回一个恒定值16。是否有可动态检查对象大小的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
Run Code Online (Sandbox Code Playgroud)
但是,数据池包含许多具有合法名称的空blob,在我之前#do some stuffs,我想对大小进行额外检查,以判断我是否在处理空blob。
另外,__sizeof__()如果不是blob对象的大小,该方法究竟能提供什么的好处呢?
我想再检查一下大小,以判断我是否正在处理空的斑点。
我们可以使用BlobProperties()。content_length来检查它是否为空。
BlockBlobService.get_blob_properties(block_blob_service,container_name,blob_name).properties.content_length
Run Code Online (Sandbox Code Playgroud)
以下是演示代码如何获取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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1228 次 |
| 最近记录: |