如何使用JSON设置Google Cloud Storage的自定义元数据?

时间:2019-03-31 22:13:04

标签: json google-cloud-storage metadata

我正在尝试将自定义元数据添加到从我的网站到GCS的所有上传中。

在添加的服务帐户JSON中,我找到了一些东西,但无法正常工作

  "metadata":  {
   "customMeta": "text here"

}

但是它不起作用,我在这里缺少什么吗? 谢谢。

更新

我使用的是Wordpress和一个名为WP-Stateless的插件,我问了插件作者,他指示我进入[link](https://github.com/wpCloud/wp-stateless/blob/v2.2/lib/classes/class-utility.php),我尝试添加几行,但是在保存并尝试之后上传内容后,我检查了GCS控制台,没有新的元数据。

/* Add Google Storage metadata to our attachment */
          $fileLink = $bucketLink . '/' . ( !empty($media['name']) ? $media['name'] : $file );
          $cloud_meta = array(
            'id' => $media[ 'id' ],
            'name' => !empty($media['name']) ? $media['name'] : $file,
            'fileLink' => $fileLink,
            'storageClass' => $media[ 'storageClass' ],
            'mediaLink' => $media[ 'mediaLink' ],
            'selfLink' => $media[ 'selfLink' ],
            'bucket' => ud_get_stateless_media()->get( 'sm.bucket' ),
            'object' => $media,
            'sizes' => array(),
            'newDATA' => $_newData[ 'some text' ],
          );

但是我上传了一些内容并检查了GCS,但是newDATA在我上传的文件的元数据中有一些文本。

2 个答案:

答案 0 :(得分:1)

正如the documentation所说,请求正文可以具有metadata字段,该字段带有JSON对象,该对象具有元数据的键/值对。或具有特定值的metadata.key字段:

  

元数据-对象-用户提供的键/值对中的元数据。

     

元数据。(键)-字符串-单个元数据条目。可写的

答案 1 :(得分:1)

这是一个对我有用的例子(注意元数据中的元数据)

const file = bucket.file(filename);     
await file.save(JSON.stringify(data), { metadata: { metadata: { user: 'user1' }}});