我正在尝试对我上传update
的一些对象的数据进行标头。Rackspace
示例标头attribute
如:X-Object-Meta-name
但要做到这一点,目前我需要从下载的对象中下载object
整个parse
对象header
。然后根据需要进行一些检查和更新,然后再次上传对象。但这使得更新过程非常缓慢。
有没有办法只下载header
an 的一部分object
并单独更新它?提前致谢!
我正在尝试对我上传update
的一些对象的数据进行标头。Rackspace
示例标头attribute
如:X-Object-Meta-name
但要做到这一点,目前我需要从下载的对象中下载object
整个parse
对象header
。然后根据需要进行一些检查和更新,然后再次上传对象。但这使得更新过程非常缓慢。
有没有办法只下载header
an 的一部分object
并单独更新它?提前致谢!
如果你给它一个带有“名称”->“更新的标头值”的映射,它应该更新标头并自动添加 x-object-meta- 前缀。
有没有办法只下载对象的标题部分并单独更新它?
我不是 Java 开发人员,但 Cloud Files API 是 RESTful 的,所以我将提供使用 curl 的示例。如果您使用的是库,那么您可能希望编辑您的问题以包含哪个库,因为其中许多库抽象了这些操作,并且可以在该库的上下文中提供更好的答案。
要下载没有对象内容的标头,请执行 HTTP HEAD 请求。
$ curl -I -XHEAD -H'X-Auth-Token:******' \
> https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_******/container/object
HTTP/1.1 200 OK
Content-Length: 400
Accept-Ranges: bytes
Last-Modified: Tue, 21 Apr 2015 12:06:23 GMT
Etag: 81dc9bdb52d04dc20036dbd8313ed055
X-Timestamp: 1429617982.70468
X-Object-Meta-Foo: Bar
Content-Type: text/html
X-Trans-Id: txd337e4634c98475baf1a4-0055363d42dfw1
Date: Tue, 21 Apr 2015 12:06:26 GMT
要仅更新对象上的标头,您可以执行 HTTP POST 请求。
$ curl -i -XPOST -H'X-Auth-Token:******' \
> -H'X-Object-Meta-Foo: Bar' \
> -H'X-Object-Meta-Foo2: Bar2' \
> https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_******/container/object
HTTP/1.1 202 Accepted
Content-Length: 76
Content-Type: text/html; charset=UTF-8
X-Trans-Id: txc262dfe86727440cbfcb1-0055363d5cdfw1
Date: Tue, 21 Apr 2015 12:06:53 GMT
<html><h1>Accepted</h1><p>The request is accepted for processing.</p></html>
执行另一个 HEAD 请求将显示两个标头现在都存在。
$ curl -I -XHEAD -H'X-Auth-Token:******' \
> https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_******/container/object
HTTP/1.1 200 OK
Content-Length: 400
Accept-Ranges: bytes
Last-Modified: Tue, 21 Apr 2015 12:06:53 GMT
Etag: 81dc9bdb52d04dc20036dbd8313ed055
X-Timestamp: 1429618012.98354
X-Object-Meta-Foo: Bar
X-Object-Meta-Foo2: Bar2
Content-Type: text/html
X-Trans-Id: txdd9365b54e8f4d8c8451d-0055363d6adfw1
Date: Tue, 21 Apr 2015 12:07:06 GMT