如何使用rest api从open stack swift中删除文件夹/目录中的所有对象?

时间:2016-05-02 03:35:26

标签: api openstack openstack-swift object-storage

我想使用文件夹或容器路径删除所有文件和文件夹,而不列出其中的所有文件。有可能吗?

4 个答案:

答案 0 :(得分:1)

你使用基于swift包的以下两步法(https://launchpad.net/swift) - 在debian jessie上成功测试

在终端中,一旦配置了swift工具,输入:

#swift list | grep> yourobjectname.lst

#cat yourobjectname.lst | xargs swift delete {}

此致

答案 1 :(得分:1)

请注意,在OpenStack的最新版本中,如果要删除整个容器,则可以使用--recursive选项:

openstack container delete --recursive mycontainer

答案 2 :(得分:0)

不可以使用开箱即用的OpenStack API。您需要 explicity 列出对象/容器并使用bulk operation

删除它们

答案 3 :(得分:0)

您可以使用this QA中所述的以下命令:

for i in $(swift list); do swift delete $i; done

请注意,在运行此命令之前,您需要为用户,项目和域集设置环境变量。例如admin-rc.sh