文件访问权限GridFS

时间:2014-08-08 15:34:04

标签: django nginx gridfs

所有用户生成的媒体文件都存储在GridFS中。目前,我需要根据文件GridFS的权限实现某种访问系统。

例如,我们在GridFS中有文件,名为" passwords.txt",只有拥有权限" allowed_to_download_passwords"的用户才能真正获得对该文件的访问权。

我发现使用http://wiki.nginx.org/XSendfile和Django视图,它将检查权限并返回nginx的正确响应。它适用于文件系统媒体存储,但我如何使用GridFS实现它?我已经看过nginx-gridfs,但看起来像是太老了,不可维护......

还有其他可以在生产中使用的选项吗?

1 个答案:

答案 0 :(得分:0)

使用GridFS上传文件时,您也可以为该文件添加一些标记或属性。 例如,

GridFSInputFile gInputFile = gridfs.createFile(inputStream, filename);
gInputFile.put("read_permissions", "allowed_to_download_passwords");
gInputFile.put("write_permissions", "allowed_to_change_passwords");

现在,您上传的文件将包含两个属性。如果有人试图阅读该文件,您将查看用户是否具有" allowed_to_download_passwords"允许。如果用户没有该权限,则他/她阅读该文件,因为该文件需要" allowed_to_change_passwords"权限。

这种方法需要更多的编程工作。

我强烈建议您考虑使用Apache ManifoldCF