3

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

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

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

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

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

4

1 回答 1

1

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

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

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

于 2010-10-31T11:52:30.537 回答