Amazon S3 boto - how to delete folder?

后端 未结 6 822
我寻月下人不归
我寻月下人不归 2020-11-30 23:40

I created a folder in s3 named \"test\" and I pushed \"test_1.jpg\", \"test_2.jpg\" into \"test\".

How can I use boto to delete folder \"test\"?

6条回答
  •  生来不讨喜
    2020-11-30 23:52

    There are no folders in S3. Instead, the keys form a flat namespace. However a key with slashes in its name shows specially in some programs, including the AWS console (see for example Amazon S3 boto - how to create a folder?).

    Instead of deleting "a directory", you can (and have to) list files by prefix and delete. In essence:

    for key in bucket.list(prefix='your/directory/'):
        key.delete()
    

    However the other accomplished answers on this page feature more efficient approaches.


    Notice that the prefix is just searched using dummy string search. If the prefix was your/directory, that is, without the trailing slash appended, the program would also happily delete your/directory-that-you-wanted-to-remove-is-definitely-not-t‌​his-one.

    For more information, see S3 boto list keys sometimes returns directory key.

提交回复
热议问题