我应该如何设计我的 ASP.NET MVC 应用程序和数据库来满足来自 Amazon S3 的静态内容服务?
目前,我Images
在本地服务器上有一张用于上传图片的表格。每个图像都有一个 ID 和一个本地路径来提供它,但我想将我的静态内容移动到云中。
- 我需要存储什么?
- 如何通过 ASP.NET MVC 3 提供 S3 内容?
- 我是通过缓存的 Web 请求还是直接从 S3 提供内容?
我已经运行专用服务器很长时间了,但我仍在学习云上的最佳实践。
我应该如何设计我的 ASP.NET MVC 应用程序和数据库来满足来自 Amazon S3 的静态内容服务?
目前,我Images
在本地服务器上有一张用于上传图片的表格。每个图像都有一个 ID 和一个本地路径来提供它,但我想将我的静态内容移动到云中。
我已经运行专用服务器很长时间了,但我仍在学习云上的最佳实践。
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
您可以将这些资源的 url 存储在您的 .net 服务器中的 S3 上,并将请求重定向到这些 url。就像您当前存储Images
表中图像的本地路径一样。
此外,在提供静态图像时,您只需要使用 S3 url 而不是 .net 服务器中的 url。
您可能想要避免的是必须使用您的 .net 应用程序从 S3 加载文件并将它们作为响应提供,除非您确实有这样做的理由。