簡體   English   中英

Rails 4,Paperclip,Amazon S3配置Amazon Path

[英]Rails 4, Paperclip, Amazon S3 Config Amazon Path

我正在嘗試配置當我的對象成功上傳到亞馬遜的S3服務時從回形針返回的端點。 上傳和一切正常,但返回的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM