0

我有一个网络应用程序,它允许用户上传文件并通过互联网与其他人共享。任何有权访问的人都可以下载文件,但如果上传者没有专门与其他人共享文件,则该人无法下载文件。

由于用户权限由 rails 控制,因此每次有人尝试下载文件时,它都会从 rails 进程发送给用户。这是一个严重的瓶颈——文件上传和权限需要rails,但它不应该只是为了让其他人下载文件而占用内存。

我想在前端、数据库和文件服务器的不同服务器上拆分应用程序。如果用户访问我的站点,他们应该能够直接从 my-fileserver.domain.com/file/38183 之类的文件下载文件,而不是通过 rails 运行它。

什么是最好的选择?我想控制数据库级别的文件访问,而不是文件系统 - 但我不希望 rails 为这样一个简单的过程占用我系统上的所有内存。有任何想法吗?

编辑:我可以做的一件事是将 mysql 中的文件/权限列表加载到 node.js 应用程序中,并根据文件服务器发送的内容作为真/假响应授予对文件服务器的访问权限。这个但是,仍然需要文件服务器来运行 Web 服务器。

4

1 回答 1

0

可能是您可以为文件生成一个 rand url,并由中心系统控制。

于 2012-09-16T05:51:48.947 回答