【问题标题】:Retrieve metadata only for Google Cloud object using JSON API?仅使用 JSON API 检索 Google Cloud 对象的元数据?
【发布时间】:2019-05-17 02:53:28
【问题描述】:

我正在尝试检索 Google Cloud 存储中某个对象的元数据。 JSON API 在get method 的文档中讨论了这一点,“[r] 检索对象或其元数据”,但不清楚如何在不下载实际对象的情况下检索元数据,在我的情况下,实际对象可能非常大.

XML API 的文档解决了这一点,出于同样的原因:

不应使用 GET 对象请求来检索一般对象元数据,因为这样做会产生与下载整个对象相关的出口费用。

(from here)

但 JSON API 中没有 HEAD 请求。使用 JSON API 获取此信息的正确方法是什么?

【问题讨论】:

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


    【解决方案1】:

    我正在尝试仅为 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
    

    Documentation

    使用这些 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'))
    

    【讨论】:

    • 看来确实可以,谢谢。 API 中没有记录这一点并不是很舒服,但现在我会继续使用它!
    • 其实这是有记录的。午饭回来后我会再发表一条评论,因为我必须查一下。
    • 此链接文档,alt=mediaprojection 以及其他一些:cloud.google.com/storage/docs/json_api/v1/objects/get
    • 呸。我显然只是不知道如何阅读;我在列表中寻找“alt=media”,而不是在“响应”部分的文本中。谢谢。
    【解决方案2】:

    看起来 get 方法用于检索内容和元数据。如果您想要的只是元数据,那么我们似乎能够执行 list command 它将返回文件列表(如果您明确命名 1 个现有文件,则只有将返回的文件),这似乎包括所有元数据对于已识别的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      相关资源
      最近更新 更多