Azure Python:blob_service.set_blob_metadata(.....)删除/覆盖最后编辑/设置的元数据(错误)

时间:2014-08-25 06:29:43

标签: python azure azure-storage azure-storage-blobs

使用以下代码行将 metadata1 设置为" myblob "斑点:

blob_service.set_blob_metadata(container_name="mycontainer",
                               blob_name="myblob",
                               x_ms_meta_name_values={'metadata1': '1111'})

,但是当我想在同一个blob上设置另一个元数据 metadata2 时,它删除最后编辑的元数据,即" metadata1&#34 ;。有错误还是我做错了什么?

blob_service.set_blob_metadata(container_name="mycontainer",
                               blob_name="myblob",
                               x_ms_meta_name_values={'metadata2': '2222'})

1 个答案:

答案 0 :(得分:2)

这是预期的行为。从这里的文档:http://msdn.microsoft.com/en-us/library/azure/dd179414.aspx

  

可选。为blob设置名称 - 值对。

     

对此操作的每次调用都会替换附加到的所有现有元数据   斑点。要从blob中删除所有元数据,请调用此操作   没有元数据标题。

     

请注意,从版本2009-09-19开始,元数据名称必须为   遵守C#标识符的命名规则。

您需要做的是先获取现有元数据,进行更改,然后再次设置元数据。