【问题标题】:MongoDB's GridFS, Rails 3, X-Sendfile, and ACL's, HOW-TO?MongoDB 的 GridFS、Rails 3、X-Sendfile 和 ACL,HOW-TO?
【发布时间】:2011-05-01 23:50:26
【问题描述】:

我有一个 Rails 3 项目,可以进行文件上传/下载,具有访问权限(用户有很多文件,只能读/写他自己的文件)。

如果我将文件存储在经典文件系统上,我可以在我的 rails 应用程序中检查对文件的访问权限,然后使用 X-Sendfile 标头重定向到文件(如果用户有权访问)。这样用户就永远无法在未经许可的情况下访问文件,而且下载速度很快。

  1. 我可以像 X-Sendfile 一样快速地从 GridFS 下载文件,并且省去通过导轨/机架管道的麻烦吗?

  2. 将它们通过导轨/机架管道会非常慢吗?

  3. 我可以像 X-Sendfile 一样快速地从 GridFS 下载文件,并且省去将它们通过导轨/机架管道的麻烦,并且还有能力强制访问权限?

【问题讨论】:

  • 猜猜我会用rack-gridfs之类的东西,然后猎物很快

标签: ruby-on-rails mongodb acl x-sendfile gridfs


【解决方案1】:

到目前为止,我已经找到并想到了可能的解决方案:

  1. 使用gridfs-fuse 之类的东西将 GFS 挂载到本地 FS 并一如既往地使用 X-Sendfile。

  2. 使用类似 nginx-gridfs 的东西,它是 c-fast 和 out-of-rails(下载时不会阻止我的应用程序的 req-resp 周期)。缺点是它是特定于服务器的

【讨论】:

  • nginx-gridfs 看起来是一个不错的解决方案,但是当前版本无法编译,并且由于许多问题,它可能会遭受内存泄漏。我会非常小心地在生产中使用它
猜你喜欢
  • 2013-09-15
  • 2022-12-02
  • 2014-04-02
  • 1970-01-01
  • 2012-04-28
  • 2023-01-29
  • 1970-01-01
  • 2022-12-26
  • 2017-10-20
相关资源
最近更新 更多