Ruby on rails 使用spree设置aws s3以上载图像

Ruby on rails 使用spree设置aws s3以上载图像,ruby-on-rails,ruby,amazon-web-services,amazon-s3,spree,Ruby On Rails,Ruby,Amazon Web Services,Amazon S3,Spree,我正在尝试在我的SpreeRails应用程序中使用aws s3 下面是我如何设置它的 我的gem文件中有gem'awsdk',“

我正在尝试在我的SpreeRails应用程序中使用aws s3

下面是我如何设置它的

我的
gem文件
中有
gem'awsdk',“<2.0”

下面是我的
spree.rb
在初始值设定项下

 Spree.config do |config|
 end

Spree.user_class = "Spree::User"
 attachment_config = {
 s3_credentials: {
 access_key_id:     ENV['AWS_ACCESS_KEY_ID'],
 secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
 bucket:            ENV['S3_BUCKET_NAME']
},
storage:        :s3,
s3_headers:     { "Cache-Control" => "max-age=31557600" },
s3_protocol:    "https",
bucket:         ENV['S3_BUCKET_NAME'],
url:            ":s3_domain_url",

styles: {
  mini:     "48x48>",
  small:    "100x100>",
  product:  "240x240>",
  large:    "600x600>"
},

path:           "/:class/:id/:style/:basename.:extension",
default_url:    "/:class/:id/:style/:basename.:extension",
default_style:  "product"
}

attachment_config.each do |key, value|
  Spree::Image.attachment_definitions[:attachment][key.to_sym] = value
end
当我运行这个时,我会

Spree::Home#索引中的ArgumentError


我不确定遗漏了什么,有人能指出吗?

仔细检查您的环境中是否设置了
S3\u BUCKET\u NAME

那么您的spree.rb应该是这样的

Spree.config do |config|
end
Spree.user_class = "Spree::User"
attachment_config = {
    s3_credentials: {
        access_key_id: ENV['AWS_ACCESS_KEY_ID'],
        secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
        bucket: ENV['S3_BUCKET_NAME']
    },
    storage:        :s3,
    s3_headers:     { "Cache-Control" => "max-age=31557600" },
    s3_protocol:    "https",
    styles: {
        mini:     "48x48>",
        small:    "100x100>",
        product:  "240x240>",
        large:    "600x600>"
    },
    path:           "/:class/:id/:style/:basename.:extension",
    default_url:    "/:class/:id/:style/:basename.:extension",
    default_style:  "product"
}
attachment_config.each do |key, value|
    Spree::Image.attachment_definitions[:attachment][key.to_sym] = value
end
Spree.config do |config|
end
Spree.user_class = "Spree::User"
attachment_config = {
    s3_credentials: {
        access_key_id: ENV['AWS_ACCESS_KEY_ID'],
        secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
        bucket: ENV['S3_BUCKET_NAME']
    },
    storage:        :s3,
    s3_headers:     { "Cache-Control" => "max-age=31557600" },
    s3_protocol:    "https",
    styles: {
        mini:     "48x48>",
        small:    "100x100>",
        product:  "240x240>",
        large:    "600x600>"
    },
    path:           "/:class/:id/:style/:basename.:extension",
    default_url:    "/:class/:id/:style/:basename.:extension",
    default_style:  "product"
}
attachment_config.each do |key, value|
    Spree::Image.attachment_definitions[:attachment][key.to_sym] = value
end