【问题标题】:How to get the blob size of Cloud Storage object?如何获取云存储对象的 blob 大小?
【发布时间】:2019-06-25 05:10:05
【问题描述】:

我可以从gsutil 获得尺寸。

✗ gsutil du gs://<bucket>/test/1561402306
100          gs://<bucket>/test/1561402306

我可以通过download_as_string 确认长度和内容。但是,size 属性始终从 SDK/API 返回 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

【问题讨论】:

    标签: python google-cloud-platform google-cloud-storage google-cloud-python


    【解决方案1】:

    要获取对象的元数据,您应该在检索 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

    【讨论】:

      【解决方案2】:

      您必须使用 get_blob() 来获取 blob blob = bucket.get_blob(blob_name) 而不是 bucket.blob(),它是 blob 对象的工厂构造函数。

      看看get_blob()blob()这两个函数的区别。

      【讨论】:

        猜你喜欢
        • 2018-11-25
        • 2018-05-07
        • 2015-04-19
        • 1970-01-01
        • 1970-01-01
        • 2021-06-13
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        相关资源
        最近更新 更多