首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有fog/aws的载波配置

带有fog/aws的载波配置
EN

Stack Overflow用户
提问于 2016-02-04 12:56:59
回答 2查看 4.8K关注 0票数 2

我的应用程序似乎在使用fog/aws创业板和载波wiki中的指令时在启动时抛出了一个错误。

我只是想上传到亚马逊S3。

正在抛出的错误是

代码语言:javascript
运行
复制
 undefined method `fog_provider=' for CarrierWave::Uploader::Base:Class

Gemfile.rb

代码语言:javascript
运行
复制
gem "fog"
gem "fog-aws"
gem "carrierwave"

初始化器/载波。

代码语言:javascript
运行
复制
CarrierWave.configure do |config|
  config.permissions = 0666
  config.directory_permissions = 0777
  config.storage = :fog
  config.fog_provider = 'fog/aws'
  config.fog_credentials = {
    provider:              'AWS',
    aws_access_key_id:     'KEYID',
    aws_secret_access_key: 'SECRETID',
    region:                'us-east-1'
  }
  config.fog_directory  = 'bucket-name'
  config.fog_public     = false
end
EN

回答 2

Stack Overflow用户

发布于 2016-02-04 13:51:48

试试这个.

你的initializers/carrierwave.rb看起来像这样。

代码语言:javascript
运行
复制
CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',                        # required
    :aws_access_key_id      => 'xxx',                        # required
    :aws_secret_access_key  => 'yyy',                        # required
    :region                 => 'eu-west-1',                  # optional, defaults to 'us-east-1'
    :host                   => 's3.example.com',             # optional, defaults to nil
    :endpoint               => 'https://s3.example.com:8080' # optional, defaults to nil
  }
  config.fog_directory  = 'name_of_directory'                     # required
  config.fog_public     = false                                   # optional, defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional, defaults to {}
end

在上传器中,将存储设置为:fog

代码语言:javascript
运行
复制
class AvatarUploader < CarrierWave::Uploader::Base
  storage :fog
end
票数 1
EN

Stack Overflow用户

发布于 2016-02-04 13:41:01

CarrierWave::Uploader::Base:Class#fog_provider=还没有发布。它只能在CarrierWave master分支中使用。

解决方案1(使用母版):

Gemfile条目更改为

代码语言:javascript
运行
复制
gem "carrierwave", git: "git@github.com:carrierwaveuploader/carrierwave.git"

但这是不推荐的,因为它不像发行版那么稳定。

解决方案2(查看0.10文档):

0.10中,使用fog_credentials=设置:provider

代码语言:javascript
运行
复制
CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',                        # required
    :aws_access_key_id      => 'xxx',                        # required
    :aws_secret_access_key  => 'yyy',                        # required
    :region                 => 'eu-west-1',                  # optional, defaults to 'us-east-1'
    :host                   => 's3.example.com',             # optional, defaults to nil
    :endpoint               => 'https://s3.example.com:8080' # optional, defaults to nil
  }
  config.fog_directory  = 'name_of_directory'                     # required
  config.fog_public     = false                                   # optional, defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional, defaults to {}
end

查看v0.10这里的文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35201617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档