是否可以使用Apache或nginx设置细粒度权限?鉴于大量文件和大量用户,指定每个经过身份验证的用户只能访问他/她自己的文件的好方法是什么?
user_a can access file_a_1, file_a_2
user_b can access file_b_1
user_c can access file_c_1, file_c2, file_c3, file_a_2
这些是静态的只读文件(大多数情况下)。想象一下文件系统就像访问控制一样但是用http。没有web-dav;这是网络应用程序的一部分;图像将在浏览器中显示为用户页面的一部分。我想确保没有其他人能够看到图像,即使他们可以找到它的网址。
答案 0 :(得分:1)
唉。如果没有编写自己的身份验证处理程序,我怀疑有一种简单的方法可以实现这一点,至少对Apache来说是这样。
如果lighttpd是一个选项,我可能会在PHP脚本中实施安全检查,如果所有内容都检出,请在响应中添加X-LIGHTTPD-send-file
标头。这意味着lighty将在不通过PHP的情况下完成所有文件传输。
(一个快速的谷歌搜索显示,apache 应支持X-sendfile
这样的内容,但我无法从Apache文档中获得任何相关信息。)
编辑:显然你可以用Apache和mod proxy scgi
做类似的事情。
答案 1 :(得分:1)
我意识到我在这里进行了解决,但仅限于未来的googlers,
以下是andri解决方案的类似nginx选项:
http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/
http://wiki.nginx.org/NginxXSendfile
......和Apache一样,显然是:
答案 2 :(得分:0)
不完全确定你要做什么。这些用户是否需要写入权限,或者文件是否为只读?这些是静态文件吗?