我应如何设计我的ASP.NET MVC应用程序和数据库以满足从亚马逊S3提供的静态内容?
目前,我在本地服务器上有一个Images
表,用于上传图像。每个图像都有一个ID和一个本地路径来提供它,但我想将我的静态内容移动到云端。
我已经运行了很长时间的专用服务器,但我仍然在学习云上的最佳实践。
答案 0 :(得分:3)
AM是对的。如果您的图片不需要是图片,您可以公开您的Bucket,并允许从您的应用程序直接访问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
答案 1 :(得分:1)
您可以将这些资源的URL存储在.net服务器中的S3上,并将请求重定向到这些URL。就像您当前存储Images
表中图像的本地路径一样。
同样,在提供静态图像时,您只需使用S3网址而不是.net服务器中的网址。
您可能希望避免的是必须使用.net应用程序从S3加载文件并将其作为响应提供,除非您确实有理由这样做。