我的s3存储桶中有以下层次结构
bucket_name/folder1/folder2/file1
bucket_name/folder1/folder2/file1
我可以删除folder2中的所有文件,但这会将文件夹留空文件夹作为folder1 / folder2。
删除这些文件夹的适当方法是什么?
以下是删除特定文件的方法:
s3
是我的亚马逊s3实例:
s3.buckets[my_bucket_name].objects[path].delete
理想情况下,我想删除文件夹中的所有内容。
答案 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)