Asynchronous 文件管理网站的最佳架构是什么?

Asynchronous 文件管理网站的最佳架构是什么?,asynchronous,file-upload,concurrency,architecture,Asynchronous,File Upload,Concurrency,Architecture,以下是我认为我的网站应该能够提供给用户的 能够将文件上载到系统。它不应该阻止,用户应该能够浏览其他网页的网站,而上传正在进行。上传完成后,用户将收到关于上传的通知。 用户应该能够在网站上查看他/她的上传文件。 能够使用第三方API在web浏览器中编辑文件 用户数量将在5000左右,所有用户都可能同时上传文件,所以性能不会下降。 我应该在哪里存储这些文件?如何确保此目录上文件的读写操作应处理并发用户请求? 考虑到以上几点。构建此网站的最佳方式是什么 是否有任何现有的web框架与rails、expr

以下是我认为我的网站应该能够提供给用户的

能够将文件上载到系统。它不应该阻止,用户应该能够浏览其他网页的网站,而上传正在进行。上传完成后,用户将收到关于上传的通知。 用户应该能够在网站上查看他/她的上传文件。 能够使用第三方API在web浏览器中编辑文件 用户数量将在5000左右,所有用户都可能同时上传文件,所以性能不会下降。 我应该在哪里存储这些文件?如何确保此目录上文件的读写操作应处理并发用户请求? 考虑到以上几点。构建此网站的最佳方式是什么


是否有任何现有的web框架与rails、express等此类体系结构配合使用

如果您希望能够在上传文件时浏览站点,那么您需要在前端使用一些覆盖锚定标记并异步获取下一页的功能—可能有一个库或其他功能来完成这一任务,但使用jQuery应该很容易实现

为了简化这一过程,并且出于许多其他原因,您几乎肯定会希望使用MVC模型-视图-控制器体系结构来构建您的站点。Rails的结构就是这样的,几乎所有的web框架都是这样。听起来,您所描述的内容并不比PHP或Python等更适合Rails,所以只需使用您或您的开发人员最熟悉的语言或框架即可。您可能需要对可用的用于编辑文件的插件进行一些研究。这实际上取决于您要编辑的文件类型以及如何使用这些插件来影响您选择哪种语言

关于在服务器上存储文件,任何逻辑系统都应该足够了。也许:

/username/year/month/day/myFile.txt

您需要做一些事情来确保文件名不会发生冲突。显然,你需要一个数据库来存储将文件链接到用户的信息。

通过阅读你的第一段,我认为构建单页Web应用程序是有意义的?是的,非常有意义。您可能还需要考虑具有JavaScript禁用的用户。相对于文件存储,我可以提示您不要使用DB。散列文件内容并将其用作存储文件名。在任何数据库中保留原始文件名、哈希值、存储路径和用户Id。您还必须阅读有关文件上载大小限制的信息