繁体   English   中英

使用Fog和Carrierwave删除多个文件(版本)-Rackspace

[英]deleting multiple files (versions) with Fog and Carrierwave - Rackspace

我正在构建一个应用程序,其中有一个包含原始,中型和缩略图尺寸图像的文件。 我正在使用载波来完成此操作,并且需要从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

问题出在文件名方法中……它以不同的方式命名文件,因为调用了Time.now的时间是1秒。 文件名方法似乎在每个版本方法上运行,但时间戳已关闭。

解决方案: https : //github.com/jnicklas/carrierwave/wiki/How-to%3A-Use-a-timestamp-in-file-names

暂无
暂无

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

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