我想在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
答案 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)
...