2011-07-03 64 views
3

我應該如何設計我的ASP.NET MVC應用程序和數據庫以滿足從亞馬遜S3提供的靜態內容的需求?針對S3的設計

目前我有一個Images表上傳的圖像在我的本地服務器上。每個圖像都有一個ID和一個本地路徑來提供它,但我想將我的靜態內容移動到雲。

  • 我需要存儲什麼?
  • 如何通過ASP.NET MVC 3提供S3內容?
  • 我是通過緩存的Web請求提供內容還是直接從S3提供內容?

我一直在運行專用服務器很長一段時間,但我仍然在學習雲上的最佳實踐。

回答

3

AM是正確的。如果你的圖片不需要演示,你可以公開你的Bucket,並允許你的應用程序直接訪問S3上的URL。

但是,如果你想在S3文件固定到身份驗證的用戶可以使用網址簽名和這裏描述http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?RESTAuthentication.html

時間戳所以,您的網址將會像

photos/puppy.jpg?AWSAccessKeyId=0PN5J17HBGZHT7JJ3X82 
    &Signature=rucSbH0yNEcP9oM2XNlouVI3BH4%3D 
    &Expires=1175139620 
+0

除了S3網址,我還需要通過ASP.NET MVC應用程序來存儲操作圖像的內容? –

+0

在數據庫中您只需存儲Bucket和Key。您將私鑰和公鑰存儲在您的web.config或類似的地方 – Daveo

1

您可以在S3上將這些資源的URL存儲在.net服務器中,並將請求重定向到這些URL。就像您正在存儲Images表中的圖像的本地路徑一樣。

此外,當您提供靜態圖片時,您只需使用S3網址而不是來自.net服務器的網址。

你可能想要避免的是,必須使用.net應用程序從S3加載文件,並將它們作爲響應,除非你真的有這樣做的理由。