AWS S3:如何删除存储桶中目录的所有内容,但不删除目录本身?

时间:2017-06-30 20:06:56

标签: amazon-web-services amazon-s3

我有一个名为static.mysite.com

的AWS S3存储桶

此存储桶包含名为html

的目录

我想使用AWS命令行界面删除html目录的所有内容,但不删除目录本身。我该怎么办?

此命令也会删除目录:

aws s3 rm s3://static.mysite.com/html/ --recursive

我在AWS S3 rm的手册条目中没有看到这个问题的答案。

3 个答案:

答案 0 :(得分:3)

老问题,但我在这里没有看到答案。如果您有一个用例来保留'文件夹'前缀,但删除所有文件,您可以使用--exclude空匹配字符串。我发现--exclude "."--exclude ".."选项不会阻止删除该文件夹。使用此:

aws s3 rm s3://static.mysite.com/html/ --recursive --exclude ""

答案 1 :(得分:1)

我只想确认文件夹的创建方式...

如果手动创建了“ subA”文件夹,然后删除了suba1文件夹,则应该找到“ subA”文件夹。手动创建文件夹时,实际上是在创建文件夹“对象”,该文件夹类似于您上载到S3的任何其他文件/对象。

但是,如果将文件直接上传到S3中的某个位置(“ subA”和“ suba1”文件夹尚不存在),您会发现“ subA”和“ suba1”文件夹是自动创建的。您可以使用AWS CLI工具之类的工具进行此操作,例如:

aws s3 cp file1.txt s3://bucket/subA/suba1/file1.txt

如果现在删除file1.txt,则“ subA”文件夹中将不再有任何对象,并且您会发现“ subA”和“ suba1”文件夹不再存在。

如果另一个文件(file2.txt)已上传到路径“ bucket / subA / file2.txt”,并且您删除了file1.txt(从上一个示例中删除),则会发现“ subA”文件夹仍然存在, “ suba1”文件夹消失。

希望这有意义吗?

亲切的问候, 克里斯

https://forums.aws.amazon.com/thread.jspa?threadID=219733

答案 2 :(得分:0)

aws s3 rm s3://static.mysite.com/html/ --recursive --exclude ""

这个命令对我有用,可以删除所有文件但不是文件夹