简体   繁体   English

使用aws-sdk gem删除Amazon S3上的“文件夹”

[英]Delete “Folder” on Amazon S3 with aws-sdk gem

I'm able to delete individual files within a "Folder" on Amazon S3 using the following: 我可以使用以下命令删除Amazon S3上“文件夹”中的单个文件:

s3 = AWS::S3.new(:access_key_id => ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_ACCESS_KEY'])
folder_path = 'uploads/'+@image.s3_filename
s3.buckets[ENV['AWS_BUCKET']].objects.with_prefix(folder_path).delete_all

but this leaves an empty folder. 但这会留下一个空文件夹。 How can I just delete the folder entirely (folder_path)? 我怎样才能完全删除文件夹(folder_path)?

This is an old question, but you can do this for aws-sdk 2.0> 这是一个老问题,但你可以为aws-sdk 2.0>做这个

s3 = Aws::S3::Resource.new
folder = 'path/to/the/folder'
objects = s3.bucket(ENV['S3_BUCKET_NAME']).objects({prefix: folder})
objects.batch_delete!

delete was depreciated delete已折旧

Hope this helps! 希望这可以帮助!

Everything on S3 is an object you can manipulate by its "key". S3上的所有内容都是一个可以通过“密钥”操作的对象。 If you just grab it you can call delete on it: 如果你只是抓住它,你可以调用它上面的delete

s3.buckets[ENV['AWS_BUCKET']].objects["name of the folder"].delete

删除文件夹后,必须删除文件夹中的所有文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM