我正在构建一个应用程序,其中我有一个包含原始,中等和缩略图图像的文件。我正在使用carrierwave来完成此任务,我需要从Rackspace Cloud Files中删除该文件的所有版本:
class StyleImageUploader < CarrierWave::Uploader::Base
version :medium do
process :resize_to_limit => [460, 460]
end
version :thumb do
process :resize_to_limit => [100, 100]
end
def filename
"#{Digest::MD5.hexdigest(original_filename . Time.now.to_s)}.#{file.extension}" if original_filename
end
end
然而,当我通过控制台进行销毁时,它只删除了原始版本......如何删除所有版本?我也在控制台中收到此错误,但它仍然会删除单个文件
#<Fog::Storage::Rackspace::NotFound: Fog::Storage::Rackspace::NotFound>
控制器销毁方法:
class ImagesController < ApplicationController
def destroy
@image = Image.find(params[:id])
@image.destroy
render :json => true
end
end
答案 0 :(得分:0)
问题在于文件名方法...它以不同的方式命名文件,在Time.now被调用时关闭1秒。看起来文件名方法在每个版本方法上运行,时间戳关闭。
解决方案: https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Use-a-timestamp-in-file-names