8

我剛剛使用Rails 3和Paperclip將文件上傳到Amazon S3。所有這些工作非常好,並且正在運行。我只想澄清一個小細節。目前,這些網址是亞馬遜網站(即開始http://s3.amazonaws.com),我希望他們以我的域名開頭。使用S3,Rails和Paperclip隱藏亞馬遜網址

我已經添加了必須的CNAME記錄到我的DNS,他們工作正常,所以我可以通過我的域的子域訪問文件。問題在於回形針生成的網址始於亞馬遜網域。有沒有簡單的方法來改變回形針配置來解決這個問題?

乾杯

回答

5
+4

具體':s3_alias_url' – 2010-09-26 00:10:13

+2

感謝您的。我已經看到了這一點,但無法完成,但在你的提示再次重新審視之後,發現一個Google Groups帖子爲我解決了這個問題。已發佈鏈接以防其他人陷入同一事件。乾杯。 https://groups.google.com/group/paperclip-plugin/browse_thread/thread/e1acd8339490438c?pli=1 – Addsy 2010-09-26 01:26:58

+0

也許這是一個DNS選項? – AnApprentice 2010-09-26 02:31:30

2

下面是你需要隱藏你的S3資產的亞馬遜網址的一切:你要使用的域別名後

  1. 名稱您的S3桶。所以,如果你想在http://assets.mysite.com/path/to/image.png訪問您的資產,那麼你應該爲您的S3存儲:assets.mysite.com

  2. 添加CNAME到你的DNS記錄,以便assets.mysite.comassets.mysite.com.s3.amazonaws.com(別名不包含」 .mysite。 。com」在 'DNS記錄的名稱' 字段)

  3. 設置回形針使用默認的S3路徑的新域別名insetad:

    has_attached_file :my_file, 
        ... 
        :url => ':s3_alias_url' 
        :s3_host_alias => 'assets.mysite.com', 
        ... 
    

我通常有不同的存儲桶用於開發,分期和生產,我只使用域別名作爲產品存儲桶。所以,以確保它在每個環境中,我:url設置往往是這樣的:

:url => (ENV['USE_S3_ALIAS'] == 'TRUE' ? ':s3_alias_url' : ':s3_domain_url')