2011-03-17 84 views
1

我存儲在Amazon S3中的所有圖像在客戶端提供圖片我不想顯示Amazon S3的網址,我寫attachments_controller以下方法從Amazon S3的軌道

def show 
    send_data(
     open(@attachment.content.url, "rb").read, 
     :type => @attachment.content_content_type, 
      :filename => @attachment.content_file_name, 
      :disposition => "inline" 
     ) 
end 

在我添加的路線,每個附件需要調用上述操作現在一切都很好,但問題是它每次渲染它都沒有緩存它。請讓我知道如何緩存它更好的動作緩存是適當的方式?

回答

2

這是回答您的問題@西蒙的回答提出的問題。

您使用Amazon's Cloudfront cdn實現此目的(通過一些努力)。

您可以將多個發行版鏈接到單個S3存儲桶,每個發行版最多可以包含10個與其關聯的CNAME。

多CNAME別名

您可以使用多個CNAME別名 更加有分佈。例如,您可以使用alias1.example.com和 alias2.example.com將 與您的發行版的域名關聯起來。 每個發行版最多可以有10個CNAME別名 。您可以將 特定CNAME別名與僅一個 分配關聯。

更多信息,請在developer guide.

+0

thxs爲d post bt我不能在數字上設置上限 – user315252 2011-03-17 13:12:18

+0

@ user315252 - 你不需要。您可以**每個分配**有多個分配**,每個分配有10個CNAMES,因此沒有限制。 – 2011-03-17 14:01:47

+0

該方法的另一個問題是它不會提供到期URL,它將給予永久鏈接 – user315252 2011-03-17 15:14:01

3
+0

酷!不知道這是可能的。這將是一個指向存儲區域的CNAME記錄,對吧? – Wukerplank 2011-03-17 10:25:23

+0

正是。我在答案中添加了幾個參考。官方的Amazon S3文檔中還有一些細節。 – 2011-03-17 10:30:26

+0

我的應用程序將按照每個客戶的基礎,它就像customername.myapp.com和客戶名將改變每個客戶..我想顯示給客戶,就像他從customername.myapp.com獲取圖像將是可能的回形針 – user315252 2011-03-17 10:31:37