如何使用API​​删除Openstack swift中的动态大对象

时间:2013-09-17 04:31:36

标签: openstack openstack-swift

按照文档的步骤

http://docs.openstack.org/developer/swift/overview_large_objects.html

我成功放了3段文件和1个清单文件

# First, upload the segments
curl -X PUT -H 'X-Auth-Token: ' \
    http:///container/myobject/1 --data-binary 'data1'
curl -X PUT -H 'X-Auth-Token: ' \
    http:///container/myobject/2 --data-binary 'data2'
curl -X PUT -H 'X-Auth-Token: ' \
    http:///container/myobject/3 --data-binary 'data3'

# Next, create the manifest file
curl -X PUT -H 'X-Auth-Token: ' \
    -H 'X-Object-Manifest: container/myobject/' \
    http:///container/myobject --data-binary ''

当我下载对象没有问题时,下载对象

curl -H 'X-Auth-Token: ' http:///container/myobject

但是当我想删除该对象时,它只删除了清单文件,所有的段文件仍然存在于云端。

curl X DELETE -H 'X-Auth-Token: ' http:///container/myobject

如何删除清单文件和段文件的对象? 我想将API用作SWIFT工具。

2 个答案:

答案 0 :(得分:2)

您需要单独删除段,方法与删除清单文件的方式相同。

请记住,无法原子地删除动态大对象。即使您首先删除清单文件,API使用的弱一致性模型也不需要按照发送顺序向用户显示两个删除操作的效果(例如,在将来的Get Object调用中)。

答案 1 :(得分:1)

swift CLI工具删除所有段对象的完整列表以及在API请求中没有任何内容的情况下创建的动态大对象。

swift delete container_name dynamic_object_name

但是使用API​​它只会删除大对象文件而不会删除关联的段对象。

如果您打算使用API​​删除细分对象,静态大对象文件是一个更好的选择。

价:
Static Large objectDynamic Large object