2

按照文档的步骤

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

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

# 首先,上传片段
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'

# 接下来,创建清单文件
curl -X PUT -H 'X-Auth-Token: ' \
    -H 'X-Object-Manifest: 容器/myobject/' \
    http:///container/myobject --data-binary ''

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

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

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

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

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

4

2 回答 2

2

您需要以与删除清单文件相同的方式单独删除这些段。

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

于 2013-09-17T12:54:56.703 回答
1

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

swift delete container_name dynamic_object_name

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

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

参考:
静态大对象动态大对象

于 2017-02-14T19:27:23.877 回答