我正在编写一个使用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://"
请帮帮我!
提前致谢!
答案 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,您将面临同样的问题。