如何获取云存储对象的 blob 大小?
How to get the blob size of Cloud Storage object?
我可以从 gsutil
得到尺码。
✗ gsutil du gs://<bucket>/test/1561402306
100 gs://<bucket>/test/1561402306
我可以通过download_as_string
确认长度和内容。然而,size
属性 始终来自 SDK/API returns None
。
如何在未下载的情况下获取 Cloud Storage 对象的大小?
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket(bucket_name)
blob = bucket.blob(blob_name)
print(len(blob.download_as_string().decode()))
print(blob.size)
输出:
100
None
要获取对象的元数据,您应该在检索 blob 时使用方法 "get_blob"。
我已经像这样编辑了您的代码:
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket(bucket_name)
blob = bucket.get_blob(blob_name) #here you use the method get_blob
print(len(blob.download_as_string().decode()))
print(blob.size)
您现在可以访问对象的大小,还可以访问其他元数据,有关它的更多信息,请查看此 documentation。
您必须使用 get_blob()
来获取 blob blob = bucket.get_blob(blob_name)
而不是 bucket.blob()
,它是 blob 对象的工厂构造函数。
在 get_blob() and blob().
查看两个函数之间的区别
我可以从 gsutil
得到尺码。
✗ gsutil du gs://<bucket>/test/1561402306
100 gs://<bucket>/test/1561402306
我可以通过download_as_string
确认长度和内容。然而,size
属性 始终来自 SDK/API returns None
。
如何在未下载的情况下获取 Cloud Storage 对象的大小?
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket(bucket_name)
blob = bucket.blob(blob_name)
print(len(blob.download_as_string().decode()))
print(blob.size)
输出:
100
None
要获取对象的元数据,您应该在检索 blob 时使用方法 "get_blob"。
我已经像这样编辑了您的代码:
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket(bucket_name)
blob = bucket.get_blob(blob_name) #here you use the method get_blob
print(len(blob.download_as_string().decode()))
print(blob.size)
您现在可以访问对象的大小,还可以访问其他元数据,有关它的更多信息,请查看此 documentation。
您必须使用 get_blob()
来获取 blob blob = bucket.get_blob(blob_name)
而不是 bucket.blob()
,它是 blob 对象的工厂构造函数。
在 get_blob() and blob().
查看两个函数之间的区别