ibm-cloud – 在IBM Bluemix上使用S3云存储

我计划在IBM Bluemix中使用S3 Cloudstorage,但后来我发现一个奇怪的事情就是无法将自定义META-DATA添加到存储在S3存储桶中的对象.

有没有办法可以将自定义元数据添加到对象中,如果是,那么请告知我们如何添加和访问它.

最佳答案 感谢您在文档中指出一个漏洞!

通过传递带有{value}值的x-amz-meta- {key}标头来定义自定义元数据.作为示例请求:

PUT /{bucket-name}/{object-name} HTTP/1.1
Authorization: {authorization-string}
x-amz-meta-foo: bar
x-amz-date: 20160825T183001Z
x-amz-content-sha256:{hashed-body}
Content-Type: text/plain; charset=utf-8
Host: s3-api.us-geo.objectstorage.softlayer.net
Content-Length: 18

{
  "foo": "bar"
}

检查元数据的HEAD请求如下所示:

HEAD /{bucket-name}/{object-name} HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20160825T183244Z
Host: s3-api.us-geo.objectstorage.softlayer.net

并回复:

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:32:44 GMT
X-Clv-Request-Id: da214d69-1999-4461-a130-81ba33c484a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.102
X-Clv-S3-Version: 2.5
ETag: {MD5-hash}
Content-Type: text/plain; charset=UTF-8
x-amz-meta-foo: bar
Last-Modified: Thu, 25 Aug 2016 17:49:06 GMT
Content-Length: 18

使用CLI,语法为:

$aws --endpoint-url=https://{endpoint} s3 cp ~/new-file s3://bucket-1/ --metadata foo=bar

希望有所帮助!

点赞