在rails视图中显示非公共图像的最佳方法

我试图找到在视图中呈现机密图像的最佳方法,而不将图像存储在rails应用程序平面文件系统中,因为我不知道在哪里放置图像。 我将图像数据二进制文件存储为:text在sqlite3数据库表中,并使用成功显示图像

 <img style = 'width:100%; height:600px' src = ''/> 

这适用于Firefox和Chrome,但我的客户端无法显示图像。 我会在一两个小时内发现他们正在使用什么浏览器。 客户说他们希望图像src url看起来像控制器文件夹中的相对路径,这似乎与不在平面文件系统中存储图像的概念相矛盾。

我想我在这里缺少一些非常小的东西,但我想知道在一个不向所有用户公开的应用程序中存储图像和文档的正确方法。 如果我的问题不明确或您需要信息,请告诉我,我会提供更多信息。

我已阅读attachment_fu和paperclip,但它们似乎允许附件下载,我只需要在页面上内嵌显示图像。 任何帮助是极大的赞赏。 非常感谢你提前。

您可以将文件保存在非公共存储库中,并使用send_file(path,options = {})控制器操作。它允许您将文件存储在硬盘上的某个位置,并将访问逻辑保留在控制器内。

你试过paperclipgem吗? 您可以将图像上传到亚马逊,亚马逊允许您设置文件权限…如果您想这样做。

正如Artem所说,亚马逊是实现这一目标的好方法。 但是如果我说得对,他们希望直接看到图像的URL(即,如果他们愿意,可以将源键入地址字段)。

您需要决定每个人都应该能够访问图像(假设他们知道名称/路径),或者要进行身份validation,在这种情况下我不认为相对路径是值得的。

你不能只有一个包含所有图像的图像文件夹(不能通过URL访问),还有一个要查找的表,用户X是否可以看到imageY?