如何删除s3中的文件夹?

时间:2014-08-12 17:53:49

标签: ruby amazon-s3

我的s3存储桶中有以下层次结构

bucket_name/folder1/folder2/file1
bucket_name/folder1/folder2/file1

我可以删除folder2中的所有文件,但这会将文件夹留空文件夹作为folder1 / folder2。

删除这些文件夹的适当方法是什么?

以下是删除特定文件的方法:

s3是我的亚马逊s3实例:

s3.buckets[my_bucket_name].objects[path].delete

理想情况下,我想删除文件夹中的所有内容。

3 个答案:

答案 0 :(得分:0)

client = Aws::S3::Client.new(region: '...',
                             access_key_id: '...',
                             secret_access_key: '...')
bucket = 'acme-test'
folder_name = 'my_folder/'

# delete all objects in folder *and folder*

client.list_objects(bucket: bucket, prefix: folder_name).contents.each do |obj|
  client.delete_object(bucket: bucket, key: obj.key)
end

答案 1 :(得分:0)

您可以使用aws-cli删除文件夹:

  

aws s3 rm s3:// mybucket / --recursive

为了检查删除操作将删除什么,可以设置'dryrun'标志:

  

aws s3 rm s3:// mybucket /-递归--dryrun

答案 2 :(得分:-3)