使用Python api客户端在GCS上检索存储Bucket和Object的gs://路径

时间:2017-11-21 05:57:22

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

我正在编写一个使用api创建google云功能的脚本,其中我需要获取存储桶或对象的gs://形式的路径,

以下是我的尝试:

svc = discovery.build('storage', 'v1', http=views.getauth(), cache_discovery=False)
            svc_req = svc.objects().get(bucket=func_obj.bucket, object=func_obj.fname, projection='full')
            svc_response = svc_req.execute()
            print(' Metadata is coming below:')
            print(svc_response)

它返回的元数据不包含 gs:// 形式的任何链接,如何以&的形式获取存储桶或对象的路径#34; gs://"

请帮帮我!

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果你转到API Explorer并模拟你的请求,你会看到这个库在python数据结构中返回完全相同的输出。在那里ID看起来最像gs://链接:

"id": "test-bucket/text.txt/0000000000000000"

或在python中看起来像:

u'id': u'test-bucket/text.txt/00000000000000000'

简单地使用它将其转换为gs://链接:

import os
u'gs://' + os.path.dirname(svc_response['id'])

会返回:

 u'gs://test-bucket/text.txt'

如果您想使用google-cloud-python,您将面临同样的问题。