<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#FFFFFF">
The documentation of Swift describes how it is possible to change
metadata entries, asif it were a key-value store. However, I was
surprised to learn that metadata is treated as a whole, and posting
one metadata header, will delete all other existing meta data.<br>
<br>
This is particularly risky if things like X-Delete-After are used,
as updating the Content-Type equally destroys this attribute if
you're not careful. Worse even, there is no way to be careful; I
know of no way to atomically request a HEAD and then send a POST,
leaving the some concurrency issues open.<br>
<br>
I really think we need a way to update single entries in the
metadata. I propose adding the "X-Merge-Metadata: yes". When this
header is present, existing metadata will be merged with the
provided metadata. If we can reach a consensus, I'll have an
implementation ready to merge shortly after the summit.<br>
<br>
[1]
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a
href="http://docs.openstack.org/api/openstack-object-storage/1.0/content/object-metadata.html">http://docs.openstack.org/api/openstack-object-storage/1.0/content/object-metadata.html</a>
</body>
</html>