使用自定义元数据存储分段上传不添加元数据

Storage multipart upload with custom metadata not adding metadata

我正在构建一个 multipart/related 上传请求,如 here 所述,请求正文中包含一些自定义对象元数据。上传成功但未设置自定义元数据字段。

请求正文如下所示:

--===============5679188666781658153==
Content-Type: application/json; -charset="utf-8"
MIME-Version: 1.0

{"x-goog-meta-local-path": "./images/02-05-2017/2017-02-05T14:33:30.364112.jpg", "x-goog-meta-capture-ds": "2017-02-05T14:33:30.364112", "name": "0/02-05-2017/2017-02-05T14:33:30.364112.jpg"}
--===============5679188666781658153==
Content-Type: image/jpeg
MIME-Version: 1.0
Content-Transfer-Encoding: base64

<Image Data>

--===============5679188666781658153==--

根据我的理解,只要键以 x-goog-meta-*.

为前缀,我应该能够任意设置元数据 key:value 对

我错过了什么吗?如何使用分段上传将自定义元数据保存到对象?

我在这个相关问题中找到了答案:Google Storage API custom header on node.js

正如jterrace指出的那样:

在此处查看 JSON 请求生成器:https://developers.google.com/storage/docs/json_api/v1/objects/insert

您会注意到元数据在正文中是一个单独的键。所以你会想要这样的东西:

var metadata = {
    name: "name"
    contentLanguage: "en",
    metadata: {
      "something": "completely different",
    },
    acl: [...]
};