3

我正在尝试使用存储在 Swift 容器中的对象设置元数据。我正在使用以下命令(请注意,我的容器是“container1”,对象是“employee.json”:

curl -X POST -H "X-Auth-Token:$TOKEN" -H 'X-Object-Meta-metadata1: value' $STORAGE_URL/container1/employee.json

它适用于一个元数据。但无论何时,我试图设置多个元数据,发出多个 curl 命令,实际上只设置了最后一个元数据值。

我认为,不应限制您只能为 swift 对象设置一个元数据。我做错什么了吗?

仅供参考:我正在使用 Openstack Swift 的 Havana 版本。

谢谢你。

4

1 回答 1

4

我想,我已经弄清楚了……我没有认真阅读文档,这很糟糕。

它 [1] 说:“一个 POST 请求将删除所有使用先前 PUT/POST 添加的现有元数据。”

所以,我尝试了这个,它奏效了......

curl -X POST -H "X-Auth-Token:$TOKEN" -H 'X-Object-Meta-p1:[P1]'  -H 'X-Object-Meta-p2:[P1]' $STORAGE_URL/container1/employee.json

在这里,现在我在一个 POST 请求中设置了多个元数据,而不是两个 POST 请求。

再次,谢谢。

参考:

  1. http://docs.openstack.org/api/openstack-object-storage/1.0/content/update-object-metadata.html
于 2014-10-11T04:06:23.843 回答