Azure Python: blob_service.set_blob_metadata(.....) 删除/覆盖最后设置的元数据(错误)
我用下面这行代码把metadata1设置成了"myblob"这个blob:
blob_service.set_blob_metadata(container_name="mycontainer",
blob_name="myblob",
x_ms_meta_name_values={'metadata1': '1111'})
但是当我想在同一个blob上设置另一个元数据metadata2时,它却删除了最后编辑的元数据,也就是"metadata1"。这是有bug吗,还是我做错了什么???
blob_service.set_blob_metadata(container_name="mycontainer",
blob_name="myblob",
x_ms_meta_name_values={'metadata2': '2222'})
1 个回答
3
这是正常的行为。根据这里的说明:http://msdn.microsoft.com/en-us/library/azure/dd179414.aspx
这是可选的。它为这个存储的文件(blob)设置一个名称-值对。
每次调用这个操作都会替换掉与这个文件(blob)相关的所有现有元数据。如果你想删除这个文件上的所有元数据,可以在调用这个操作时不带任何元数据头。
注意,从2009年9月19日开始,元数据的名称必须遵循C#标识符的命名规则。
你需要先获取现有的元数据,进行修改,然后再重新设置元数据。