nor*_*ree 2 python google-cloud-storage google-cloud-platform google-cloud-python
我可以从gsutil.
? gsutil du gs://<bucket>/test/1561402306
100 gs://<bucket>/test/1561402306
Run Code Online (Sandbox Code Playgroud)
我可以通过download_as_string. 但是,该size属性始终None从 SDK/API返回。
如何在不下载的情况下获取 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)
Run Code Online (Sandbox Code Playgroud)
输出:
100
None
Run Code Online (Sandbox Code Playgroud)
要获取对象的元数据,您应该在检索 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)
Run Code Online (Sandbox Code Playgroud)
您现在可以访问对象的大小,并且还可以访问其他元数据,有关它的更多信息,请查看此文档。
小智 5
您必须使用get_blob()来获取 blobblob = bucket.get_blob(blob_name)
而不是bucket.blob(),它是 blob 对象的工厂构造函数。
查看get_blob()和blob() 中两个函数之间的区别。
| 归档时间: |
|
| 查看次数: |
3624 次 |
| 最近记录: |