如何使用Google Cloud Storage客户端获取Google Cloud Storage Bucket的metdata

时间:2019-06-18 10:50:24

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

我想在python中创建一个函数,该函数有助于使用Google Cloud Storage客户端库函数枚举元数据

我已经创建了一个函数,该函数列出了我想显示的存储桶的元数据,如下所示https://cloud.google.com/storage/docs/json_api/v1/buckets#resource


     for bucket in self.client.list_buckets():
         print(bucket)
#  this list the all the buckets 

我想要这样的东西

  def meta(self):
      bucket_name="sample"
    //It should print the metadata of the bucket not the metadata of object inside the bucket 

2 个答案:

答案 0 :(得分:4)

google.cloud.storage.Client中有一个“受保护的”成员,它是存储桶属性的映射,与您要查找的API表示文档非常匹配。由于它不在公开的API中,因此它可能会发生变化,但是您可以清楚地了解当前可用的功能。这是一个片段:

#! /usr/bin/env python

from pprint import pprint
from typing import Dict

from google.cloud import storage

BUCKET_NAME = "your-bucket-here"

def get_bucket_metadata(bucket_name: str, gcs: storage.Client) -> Dict[str, str]:
    bucket = gcs.get_bucket(bucket_name)
    return bucket._properties

def main():
    gcs = storage.Client()
    metadata = get_bucket_metadata(BUCKET_NAME, gcs)
    pprint(metadata)

if __name__ == "__main__":
    main()

我是通过运行print(dir(bucket))并检查可用的方法和属性来找到的。您可能会找到其他您感兴趣的人。

这是输出示例:

{'etag': 'CAE=',
 'iamConfiguration': {'bucketPolicyOnly': {'enabled': False}},
 'id': 'your-bucket-here',
 'kind': 'storage#bucket',
 'location': 'US-WEST1',
 'metageneration': '1',
 'name': 'your-bucket-here',
 'projectNumber': '264682420247',
 'selfLink': 'https://www.googleapis.com/storage/v1/b/your-bucket-here',
 'storageClass': 'REGIONAL',
 'timeCreated': '2019-02-20T21:53:30.130Z',
 'updated': '2019-02-20T21:53:30.130Z'}

HTH。

答案 1 :(得分:0)

您可以找到可以在类google.cloud.storage.bucket.Bucket here上调用的方法的列表。

例如:

from google.cloud import storage

storage_client = storage.Client()
bucket_name = 'my-bucket'
bucket = storage_client.get_bucket(bucket_name)

print(bucket.name)
print(bucket.time_created)
print(bucket.project_number)
print(bucket.cors)

...