Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 删除带有已处理文件的Carrierwave S3目录_Ruby On Rails_Ruby On Rails 3_Carrierwave_Fog - Fatal编程技术网

Ruby on rails 删除带有已处理文件的Carrierwave S3目录

Ruby on rails 删除带有已处理文件的Carrierwave S3目录,ruby-on-rails,ruby-on-rails-3,carrierwave,fog,Ruby On Rails,Ruby On Rails 3,Carrierwave,Fog,在我的例子中,当用户通过Carrierwave(使用fog)将图像上传到S3时,他们的原始图像会被处理,优化的副本也会被制作并存储在S3中。但是,当用户删除这些图像时,Carrierwave仅删除原始图像,而目录+优化副本仍保留。我想找到一种方法来删除原始文件、它的目录以及其中的所有文件 我在Carrierwave的资料中发现了以下内容,我认为这可能会有所帮助: # File lib/carrierwave/storage/s3.rb, line 100 def delete AWS::S3

在我的例子中,当用户通过Carrierwave(使用fog)将图像上传到S3时,他们的原始图像会被处理,优化的副本也会被制作并存储在S3中。但是,当用户删除这些图像时,Carrierwave仅删除原始图像,而目录+优化副本仍保留。我想找到一种方法来删除原始文件、它的目录以及其中的所有文件

我在Carrierwave的资料中发现了以下内容,我认为这可能会有所帮助:

# File lib/carrierwave/storage/s3.rb, line 100
def delete
  AWS::S3::S3Object.delete @path, @uploader.s3_bucket
end
我想知道是否有人做过这样的事?我很想听听你是怎么做到的。。。从长远来看,这可以节省大量磁盘。

对于
对象
,有一个实例方法
delete

# delete 2 objects (by key) in a single request
bucket.objects.delete('abc', 'xyz')

You can delete objects also by passing their S3Object representation:

to_delete = []
to_delete << buckets.objects['foo']
to_delete << buckets.objects['bar']

bucket.objects.delete(to_delete)
Deletes all objects represented by this collection.

Examples:

Delete all objects from a bucket

    bucket.objects.delete_all   
    Delete objects with a given prefix
    bucket.objects.with_prefix('2009/').delete_all