4

我应该如何设计我的 ASP.NET MVC 应用程序和数据库来满足来自 Amazon S3 的静态内容服务?

目前,我Images在本地服务器上有一张用于上传图片的表格。每个图像都有一个 ID 和一个本地路径来提供它,但我想将我的静态内容移动到云中。

  • 我需要存储什么?
  • 如何通过 ASP.NET MVC 3 提供 S3 内容?
  • 我是通过缓存的 Web 请求还是直接从 S3 提供内容?

我已经运行专用服务器很长时间了,但我仍在学习云上的最佳实践。

4

2 回答 2

3

AM 是正确的。如果您的图像不需要安全,您可以将您的存储桶公开并允许从您的应用程序直接访问 S3 上的 URL。

但是,如果您想将 S3 上的文件保护到经过身份验证的用户,您可以使用 URL 签名和此处描述的时间戳http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?RESTAuthentication.html

所以你的网址会是这样的

  photos/puppy.jpg?AWSAccessKeyId=0PN5J17HBGZHT7JJ3X82
    &Signature=rucSbH0yNEcP9oM2XNlouVI3BH4%3D
    &Expires=1175139620
于 2011-07-04T04:02:13.617 回答
1

您可以将这些资源的 url 存储在您的 .net 服务器中的 S3 上,并将请求重定向到这些 url。就像您当前存储Images表中图像的本地路径一样。

此外,在提供静态图像时,您只需要使用 S3 url 而不是 .net 服务器中的 url。

您可能想要避免的是必须使用您的 .net 应用程序从 S3 加载文件并将它们作为响应提供,除非您确实有这样做的理由。

于 2011-07-04T00:54:00.120 回答