【问题标题】:Carrierwave + Fog+ cachingCarrierwave + Fog+ 缓存
【发布时间】:2015-03-04 01:01:43
【问题描述】:

场景:我们网站上有一些用户之前为他们的网站上传了徽标。最近,我们更改了此徽标的尺寸,并希望所有帐户都能反映此更改(我们还从我们的应用程序中删除了retina_rails)。因此,我们计划进行迁移以移除视网膜导轨,同时循环遍历每个帐户并重新上传徽标以对所有徽标进行标准化。

目前,迁移是这样的:

class RemoveRetinaDimensionsFromAccounts < ActiveRecord::Migration
  def change
    remove_column :accounts, :retina_dimensions, :text
  end

  ActsAsTenant.configure.require_tenant = false
  Account.all.each do |account|
    if account.logo?
        account.logo.cache_stored_file!
        account.logo.retrieve_from_cache!(account.logo.cache_name)
            account.logo.recreate_versions!(:small, :small)
            account.save!
        end
  end
  ActsAsTenant.configure.require_tenant = true
end

这就是我们的carrierwave.rb 文件的样子:

CarrierWave.configure do |config|
  if Rails.env.test?
    config.storage = :file
    config.enable_processing = false

  elsif Rails.env.development?
    config.storage = :file
    config.cache_dir = "#{Rails.root}/tmp/uploads"

  elsif Rails.env.staging?
    config.storage = :fog
    config.cache_dir = "#{Rails.root}/tmp/uploads"
    config.fog_credentials = {
      :provider               => 'AWS',                                           # required
      :aws_access_key_id      => Rails.application.secrets.aws_access_key_id,     # required
      :aws_secret_access_key  => Rails.application.secrets.aws_secret_access_key, # required
      :region                 => 'us-west-2'                                      # optional, defaults to 'us-east-1'
    }
    config.fog_directory  = 'blvd-staging'                                        # required
    config.fog_public     = false 
 end
end

我已尝试遵循此链接https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Recreate-and-reprocess-your-files-stored-on-fog 中提到的建议,但它不起作用。我已经测试以确保缓存正在保存文件,并且确实如此。然而,当我尝试和retrieve_from_cache!我无法这样做(因为缓存的文件没有名称)。

这是我的缓存文件的样子:

tmp 上传 ##########-#####-####

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby amazon-web-services carrierwave fog


    【解决方案1】:

    原来我没有在迁移中的更改块中运行所需的代码块,因此代码从未被执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 2013-04-13
      • 2013-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 1970-01-01
      相关资源
      最近更新 更多