<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>