无法使用ruby脚本从amazon s3删除文件

我正在使用aws-sdk-ruby来删除我的amazon s3帐户中保存在存储桶中的文件,但我无法弄清楚为什么我能够使用以下代码从S3存储桶中删除所需的文件。

这是我的代码

require 'aws-sdk-v1' require 'aws-sdk' ENV['AWS_ACCESS_KEY_ID'] = "XXXXXXX" ENV["AWS_SECRET_ACCESS_KEY"] = '/ZZZZZZZZ' ENV['AWS_REGION'] = 'us-east-1' s3 = Aws::S3::Resource.new bucket = s3.bucket('some-bucket') obj = bucket.object('https://s3.amazonaws.com/some-bucket/38ac8226-fa72-4aee-8c3d-a34a1db77b91/some_image.jpg') obj.delete 

看看IMO的文档 ,看起来应该是这样的:

 bucket = s3.buckets['some-bucket'] obj = bucket.objects['38ac8226-fa72-4aee-8c3d-a34a1db77b91/some_image.jpg'] obj.delete 

注意方括号并且对象的键不包含域而不是创建Aws::S3::Resource的实例Aws::S3::Resource创建AWS::S3的实例

它应该是:

 objs = bucket.objects('https://s3.amazonaws.com/some-bucket/38ac8226-fa72-4aee-8c3d-a34a1db77b91/some_image.jpg') objs.each {|obj| obj.delete} 

使用aws-sdk v2:我必须这样做:(参见Doc )

 $s3.bucket("my-bucket").objects(prefix: 'my_folder/').batch_delete! 

(不推荐delete以支持batch_delete

有用的post: https : //ruby.awsblog.com/post/Tx1H87IVGVUMIB5/Using-Resources