【问题标题】:deleting multiple files (versions) with Fog and Carrierwave - Rackspace使用 Fog 和 Carrierwave 删除多个文件(版本) - Rackspace
【发布时间】:2013-04-18 14:05:17
【问题描述】:

我正在构建一个应用程序,其中有一个包含原始、中等和缩略图大小图像的文件。我正在使用 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

【问题讨论】:

    标签: ruby-on-rails carrierwave rackspace-cloud fog rackspace


    【解决方案1】:

    问题出在文件名方法中……它以不同的方式命名文件,在调用 Time.now 时会延迟 1 秒。看起来文件名方法在每个版本方法上运行,时间戳是关闭的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      相关资源
      最近更新 更多