这之前已经奏效,或者我相信。
出于某种原因,在我的开发环境甚至是暂存期间,Paperclip正在使用我的生产桶而不是开发桶。
以下是与之相关的用户模型部分
has_attached_file :avatar,
storage: :s3,
s3_credentials: "#{Rails.root}/config/s3.yml",
s3_permissions: :private,
path: "/:style/:id/:filename",
s3_protocol: "https",
styles: { medium: "300x300#", thumb: "100x100#", icon: "26x26#" },
default_url: ":style/ico_missing_user.png"
在这里,我的yml文件:
common: &common
access_key_id: <%= ENV['S3_KEY'] %>
secret_access_key: <%= ENV['S3_SECRET'] %>
development:
<<: *common
bucket: mydevbucket
staging:
<<: *common
bucket: mystagingbucket
production:
<<: *common
bucket: myprodbucket
我做错了什么?
答案 0 :(得分:0)
我将“load_config.rb”文件添加到初始化程序目录:
load_config.rb
S3_CONFIG = YAML.load_file("#{::Rails.root}/config/s3.yml")[Rails.env]
并开始使用S3_CONFIG而不是"#{Rails.root}/config/s3.yml"
has_attached_file :avatar,
storage: :s3,
s3_credentials: S3_CONFIG,
s3_permissions: :private,
path: "/:style/:id/:filename",
s3_protocol: "https",
styles: { medium: "300x300#", thumb: "100x100#", icon: "26x26#" },
default_url: ":style/ico_missing_user.png"
上面的解决方案可以很好地设置存储桶,但是在上传文件时我开始遇到回形针问题,说ECONN:Aborted。
以下是我理解的工作:
has_attached_file :avatar,
storage: :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:bucket => ENV['S3_BUCKET'],
s3_permissions: :private,
path: "/:style/:id/:filename",
s3_protocol: "https",
styles: { medium: "300x300#", thumb: "100x100#", icon: "26x26#" },
default_url: ":style/ico_missing_user.png"
上启发了这个