1

新手AWS問題:我們的Rails應用程序目前允許通過載波圖片上傳S3存儲區。事情工作得很好...但它開始有點混亂(和繁瑣),因爲一些原始文件在一個桶(上傳的照片),而其他人在另一個桶(網站標誌等),而其他人(javascript & css)直接從Rails主機提供。關於亞馬遜Cloud Front關於Rails應用程序帶圖片上傳的問題

我們正在尋找雲鋒可能幫助鞏固&簡化我們的送貨......但我們都沒有任何與它的經驗。 一旦正確配置(使用自定義來源),我們可以/應該將所有資產都帶回本地服務器,然後「簡單地」依靠Cloud Front進行交付?這意味着將所有上傳的圖像(目前在S3上)退回到本地Rails服務器,而不是使用帶有霧寶石的Carrierwave上傳它們,我們只處理&將文件存儲在本地文件系統中。這會帶來很多好處,其中主要的是我們會在主機上本地備份整個應用程序的完整副本,包括所有資產。

此外,我們可以預計上傳後的新圖像會延遲... 超出當上傳圖像上傳到S3時通過霧處理上傳圖像時出現輕微延遲,會發生什麼情況?

最後,是否會有任何理由讓我們的S3存活下去?我知道「未使用」的資產已從CloudFront中清除,但無論如何,我還不清楚哪種度量標準定義爲「未使用」。

這是一個常見用例嗎?主要只是尋找驗證或者告訴你。

謝謝!

回答

1

至於使用CloudFront的的carrierwave S3,我寫了一個博客文章究竟是如何做到這一點。 (如果你已經有s3工作,那麼獲得cloudfront部分的工作非常容易)http://jeffdickey.info/using-carrierwave-on-heroku-for-image-uploading-w-cloudfront

而在js/css資產註釋中,如果您使用的是rails 3.1資產管道,那麼您只需要進入您的production.rb文件,並將您的資產主機設置爲指向rails服務器的cloudfront cdn。

我喜歡爲這兩個cdns使用content.domain.com和assets.domain.com。

無需將您的js/css資源上傳到S3,然後從CloudFront提供服務,直接爲他們提供服務。 CloudFront將爲您處理緩存。

0

兩個建議:

1)使用jammitjammit-s3管理資產,並提供給CloudFront的。在開發過程中,您的資產位於本地文件系統中,但在部署時推向雲端。 s3 gem足夠聰明,可以檢查哪些文件已經發生變化等等。我不確定這將如何受到rails 3.1的影響,但它在3.0上運行良好。 2)使用cloudflare。這項服務是令人難以置信的令人興奮,除了安全優勢也緩存您的靜態資產,並使用自己的cdn提供。令人驚訝的是,我們大部分人都需要免費服務,儘管我不知道您的應用需求。強烈建議你檢查一下。

+0

我剛剛意識到我撇開了你的問題,但我會保持你的圖像上的S3和資產,在我的答案中所述。 – mark

+0

這是一款使用資產管道的3.1應用程序。不確定Jammit是完全兼容的......或者至少它基本上是多餘的?!?沒有?無論如何,我認爲我無論如何都不需要Cloud Front或Cloudflare,因爲我們沒有「發佈」,對吧?我的理解是,「發佈」是在未請求緩存的圖像時發生的......然後,CF將從我們(權威)網站提取資源並分發它。至少這就是我所相信的?!? – Meltemi

+0

如果你沿着cloudflare的路線走,那麼你只需將你的資產留在你的公共目錄中,如果我的記憶正確地爲我提供了公共/資產,那麼就使用3.1。在這裏簽出cloudflare的cdn https://www.cloudflare.com/system-status.html。我站在雲端正面:http://stdout.wooswiff.com/2011/01/no-fuss-amazon-cloudfront-cdn-for-your.html – mark

0

關於使上傳的圖片回您的服務器有幾件事情要記住:

  • 而是在一個桶中,你將有可能付出數CloudFront的邊緣位置(約20存儲支付他們目前)。另一方面,您只會支付實際使用的文件和用戶所在的位置,因此差異取決於文件的使用方式。
  • 如果文件被更改,您需要更改其名稱或者您的用戶可能看不到更改,也許您已經通過給上傳唯一名稱來解決此問題。

如果從egde位置丟失文件,服務沒有明顯延遲Cloudfront只會從服務器獲取文件,轉發並在下次訪問時存儲它。因此,如果文件被清除,則Cl​​oudfront將在需要時再次獲取它並不重要。

至於你的其他文件,因爲你在資產管道中使用Rails 3.1,所以很容易。我已經證明我在這裏設置:

http://blog.ertesvag.no/post/10720082458