Rails 4,Paperclip,Amazon S3配置Amazon Path

我正在尝试配置当我的对象成功上传到Amazon的S3服务时从回形针返回的端点。 上传和一切正常,但返回的URL不正确,无法显示上传。

现在,返回的url是http://s3.amazonaws.com/path/to/my/items (如下图所示)。

而不是s3.amazonaws.com ,我希望根特定于桶的位置(例如s3-us-west-1.amazonaws.com/path/to/my/items

在此处输入图像描述

我应该在哪里尝试配置不同的URL路径(从s3.amazonaws.com到其他地方)? 我试图将带有上述路径的url添加到我的配置文件中,如:

  #Paperclip Amazon S3 config.paperclip_defaults = { :storage => :s3, :url => "https://s3-us-west-1.amazonaws.com/", :s3_credentials => { :bucket => ENV['S3_BUCKET_NAME'], :access_key_id => ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] } } 

哪个似乎没有任何影响。 请告知我应该在哪里设置此选项!

提前致谢!

如果您打算使用S3,我们发现您必须在实际模型中包含S3凭据(而不仅仅是配置文件)。 这是我们做的:

模型

 #Image Upload Paperclip.options[:command_path] = 'C:\RailsInstaller\ImageMagick' has_attached_file :image, :styles => { :medium => "x300", :thumb => "x100" }, :default_url => "****", :storage => :s3, :bucket => '****', :s3_credentials => S3_CREDENTIALS, :url => "/:image/:id/:style/:basename.:extension", :path => ":image/:id/:style/:basename.:extension" 

配置/ application.rb中

  # Paperclip (for Amazon) (we use EU servers) config.paperclip_defaults = { :storage => :s3, :s3_host_name => 's3-eu-west-1.amazonaws.com' } 

配置/ s3.yml

 #Amazon AWS Config development: access_key_id: ********** secret_access_key: ************** bucket: **** production: access_key_id: *********** secret_access_key: *********** bucket: **** 

希望这可以帮助?

迁移到Spree 2.2时我也有同样的问题,我仍然不确定如何以正确的方式解决它。 似乎Paperclip应该从配置中更新路径,但事实并非如此。

由于缺乏更好的解决方案,我已经覆盖了Spree :: Image类,如下所示:

 1 Spree::Image.class_eval do 2 has_attached_file :attachment, 3 styles: { mini: '48x48>', small: '100x100>', product: '240x240>', large: '600x600>' }, 4 default_style: :product, 5 url: '/spree/products/:id/:style/:basename.:extension', 6 path: 'products/:id/:style/:basename.:extension', 7 convert_options: { all: '-strip -auto-orient -colorspace sRGB' }· 8 end 

经过一些实验,我发现设置:s3_host_name全局就足够了。 我最后:s3_region了同样的问题,因为我设置了:s3_region ,Paperclip(4.3.1之后,aws-sdk 2)用于存储附件,但在生成URL时却没有。

对于最终解决此问题的读者来说,这也可能是有趣的: https : //github.com/thoughtbot/paperclip/wiki/Restricting-Access-to-Objects-Stored-on-Amazon-S3