隐藏非成员用户的图像

时间:2013-04-08 12:55:50

标签: ruby-on-rails performance caching webserver privacy

我有一个网站,用户可以上传图片并将每张图片的隐私设置设置为“公众可见”,“会员可见”或“朋友可见”。当图像设置为“成员可见”时,所有未登录的用户都会看到一些“禁止,注册”图像。当它是“朋友可见”时,所有非朋友都会看到“禁止”的人。

实现这一目标的最佳方式(在资源最友好/最快)方面是什么?

目前,对于已登录和未登录的用户,我的html中的图像资源都有<img src="/images?image_id=1234">的通用链接。

我的/image是一个脚本,用于查找当前用户(通过cookie)和数据库中的图像元数据(通过image_id),比较用户的访问权限,然后发送实际图像或“禁止的“图像。问题在于:每次加载图像时都会调用脚本,并产生一些我想避免的开销。

我希望所有图像在服务器上都是静态的,并通过某种静态哈希URL调用。这样每次都不需要触发膨胀的脚本。但我也想阻止用户复制该静态图像链接并将其发送给其他(未登录)用户(默默无闻!)。另一个问题是我需要确保只有朋友可以看到“朋友可见”的图像。

您对此有何体验?欢迎任何想法!

PS:我正在使用Ruby on Rails,Mysql,Apache,Redis,但欢迎使用通用解决方案,这就是我没有添加技术相关标签的原因。

0 个答案:

没有答案