问题描述
我目前正在从事一个由NUXTjs-Frontend和NodeJS-Backend组成的项目。 在该项目中,用户可以登录,创建一个项目,然后向该项目中添加一些元数据,然后上传该项目所需的文件。
用户及其哈希密码当前保存在MysqL数据库中,而文件当前仅保存在本地文件系统中。
将用户输入的数据和实际上传的文件持久化的聪明方法是什么?我有一些想法,但是我想让它第一次纠正,而不是用笨拙的方式解决,这在开始时就不错,但是一旦有更多的用户,就会带来重大问题。
我尝试自己查找它,但是我担心我没有使用正确的搜索词,所以我从来没有发现任何有用的东西。任何资源都将受到高度赞赏。
解决方法
将文件存储在本地文件系统上可以工作一段时间。但是,对于生产环境,我会考虑将文件从Node服务器卸载到单独的文件存储中。这样,硬盘填满不会导致整个服务器瘫痪。
文件可以存储在云存储(例如AWS S3)或支持二进制对象的数据库中。 Postgres擅长在两个https://wiki.postgresql.org/wiki/BinaryFilesInDB之间进行选择。