我正尝试仅在Google Cloud存储中检索对象的元数据 。 JSON API在文档get method中对此进行了讨论,该文档“ [r]获取对象或其元数据”,但尚不清楚如何在不下载实际对象的情况下检索元数据,在我看来,这可能是很大。
XML API的文档解决了这一点,并且出于同样的原因:
不应使用GET对象请求来检索常规对象元数据,因为这样做会产生与下载整个对象相关的出站费用。
但是JSON API中没有HEAD请求。通过JSON API获取此信息的正确方法是什么?
答案 0 :(得分:0)
它看起来确实像get方法用于检索内容和元数据。如果您只需要元数据,那么我们似乎可以执行list command,它将返回文件列表(如果您明确命名为1个现有文件,则仅返回将要返回的文件)。识别文件的元数据。
答案 1 :(得分:0)
我正在尝试仅检索Google Cloud中对象的元数据 存储。 ...但是JSON API中没有HEAD请求。那是什么 使用JSON API获取此信息的正确方法?
相同的REST API可以返回对象的内容或对象的元数据。这是通过查询参数控制的。关键查询参数为alt=media
。如果没有此参数,则返回元数据。使用此参数,将返回内容。
获取对象内容(URL编码)的示例:
https://www.googleapis.com/storage/v1/b/bucket_name/o/Public%2Fobject_name?alt=media
获取对象元数据的示例[无所有者或ACL属性](URL编码):
https://www.googleapis.com/storage/v1/b/bucket_name/o/Public%2Fobject_name
获取对象的完整元数据(URL编码)的示例:
https://www.googleapis.com/storage/v1/b/bucket_name/o/Public%2Fobject_name?projection=full
使用这些URL的Python 3.x示例(无错误检查):
access_token = ....
headers = {
"Host": "www.googleapis.com",
"Authorization": "Bearer " + access_token,
"Content-Type": "application/json"
}
h = httplib2.Http()
url = 'https://www.googleapis.com/storage/v1/b/bucket_name/o/Public%2Fobject_name?projection=full'
resp, content = h.request(uri=url, method="GET", headers=headers)
print(content.decode('utf-8'))