File upload 使用自定义元数据的存储多部分上载不添加元数据

File upload 使用自定义元数据的存储多部分上载不添加元数据,file-upload,google-cloud-storage,google-cloud-platform,multipart,File Upload,Google Cloud Storage,Google Cloud Platform,Multipart,我正在构建一个多部分/相关的上传请求,如上所述,请求主体中有一些自定义对象元数据。上载成功,但未设置自定义元数据字段 请求主体如下所示: --===============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

我正在构建一个
多部分/相关的
上传请求,如上所述,请求主体中有一些自定义对象元数据。上载成功,但未设置自定义元数据字段

请求主体如下所示:

--===============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==--
-->===================5679188666781658153==
内容类型:application/json-charset=“utf-8”
MIME版本: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==
内容类型:图像/jpeg
MIME版本:1.0
内容传输编码:base64
--===============5679188666781658153==--
根据我的理解,我应该能够任意设置元数据键:值对,只要键的前缀是
x-goog-meta-*


我错过什么了吗?如何使用多部分上载将自定义元数据持久化到对象?

我在这个相关问题中找到了答案:

正如
jterrace
所指出的:

在这里查看JSON请求生成器:

您会注意到元数据在主体中是一个单独的键。因此,您将需要以下内容:

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

您是否尝试过使用charset=UTF-8而不是-charset=“UTF-8”,并删除初始MIME版本?@jarmod我没有,我使用的是python
email.MIME
实用程序,默认情况下会添加该版本,我认为我无法删除它,尽管我认为这不是问题所在。我假设,由于它正确地设置了在同一个json中定义的对象
名称
,因此解析元数据时会出现问题