亚马逊可以被用来卸载为on Rails应用程序一个Ruby静态文件服务器,但仍然支持应用程序的认证和授权?

StackOverflow https://stackoverflow.com/questions/1478609

可以在亚马逊的服务之一(他们的S3数据服务,或以其他方式)来分担的静态文件服务器上的Rails应用程序一个Ruby,但仍支持该应用程序的认证和授权?

这是这样的,当用户浏览器下载为Ruby的一个页面的初始HTML on Rails应用程序,当它回到静态内容(例如图像或CSS文件),该请求将是: (a)直接路由到Amazon服务(用于服务于它没有RoR的周期,或带宽),但是 (二)该项目的浏览器请求(例如图像),仍必须经过基于Ruby on Rails的应用程序的用户模型的验证/授权层 - 换句话说,以确保不只是任何人都可以得到的图像。 ..

感谢

有帮助吗?

解决方案

答案是用但肯定的。您可以使用S3的一项功能,允许您创建的链接,以确保有一个小的时候住S3对象,默认为5分钟。这对于上载的任何私有S3对象工作。这意味着浏览器将只具有X秒或任何请求从S3文件。从实施例的代码文档为AWS宝石:

S3Object.url_for('beluga_baby.jpg', 'marcel_molina')

您还可以指定一个或expires_in每个文件过期选项。坏的事情是,你需要创建一个帮助你的样式表,图片和JS链接创建正确的S3网址。 我建议你设置一个域名为您的S3存储,如“examples3.amazonaws.com”,并把所有的标准图像文件和CSS有公众。然后设置为你的Rails配置资产主机。然后,只使用为真正需要它的静态文件的安全链接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top