加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – CarrierWave无法使用Fog和S3:ArgumentError

发布时间:2020-12-17 02:35:34 所属栏目:百科 来源:网络整理
导读:也许这是CarrierWave中的一个错误?我在这里阅读类似的问题,尝试了示例代码并重现了一个新的应用程序,但它无法正常工作. 我尝试使用类似Github上的示例的旧应用程序,但现在它不起作用. 完整追踪:here 的Gemfile source 'https://rubygems.org'gem 'rails','
也许这是CarrierWave中的一个错误?我在这里阅读类似的问题,尝试了示例代码并重现了一个新的应用程序,但它无法正常工作.

我尝试使用类似Github上的示例的旧应用程序,但现在它不起作用.

完整追踪:here
的Gemfile

source 'https://rubygems.org'

gem 'rails','3.2.2'

gem 'mini_magick','~> 3.4'
gem 'carrierwave','~> 0.5.8'
gem 'fog'
gem 'activeadmin','~> 0.4.3'
gem 'httparty'
gem 'dalli'
gem 'json'
gem "mercury-rails",:git => "https://github.com/jejacks0n/mercury.git"
gem 'newrelic_rpm'

group :assets do
  gem 'sass-rails','~> 3.2.4'
  gem 'coffee-rails','~> 3.2.2'
  gem 'uglifier','>= 1.0.3'
end

gem 'jquery-rails'
gem 'jquery_datepicker'
group :development do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

这是carrierwave配置:

# config/carrierwave.rb
# encoding: utf-8
require 'carrierwave'

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',# required
    :aws_access_key_id      => 'ACCESS_KEY',# required
    :aws_secret_access_key  => 'SECRET_KEY',# required
    :region                 => 'eu-west-1'  # optional,defaults to 'us-east-1'
  }
  config.fog_directory  = 'lkrails'                     # required
  config.fog_host       = 'https://lkrails.s3-eu-west-1.amazonaws.com'
  config.fog_public     = true # optional,defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional,defaults to {}

   # Make the tmp dir work on Heroku
   #  config.cache_dir = "#{Rails.root}/tmp/uploads"
end

这是上传者

# uploaders/images_uploader.rb
class ImagesUploader < CarrierWave::Uploader::Base
    include CarrierWave::MiniMagick
    storage :fog

    def store_dir
        "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
    end
    version :tiny do
       process :resize_to_limit => [25,25]
    end
    version :thumb do
       process :resize_to_limit => [50,50]
    end
    version :medium do
        process :resize_to_limit => [120,120]
    end

    def extension_white_list
       %w(jpg jpeg gif png)
    end

    def filename 
    if original_filename 
      @name ||= Digest::MD5.hexdigest(File.dirname(current_path))
      "#{@name}.#{file.extension}"
    end
end

解决方法

根据您的日志文件,您的雾版本非常老.您使用的是0.3.25,最新的标签是1.1.2.试着这样做:

bundle update fog

您的版本的carrierwave也同样过时了,所以我也捆绑了更新的carrierwave.这应该有助于纠正这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读