如何将文件存储在磁盘中并在Postgres数据库中引用它并同步?

时间:2018-02-07 14:45:51

标签: node.js postgresql

我想将其存储为服务器中的文件。它可能位于磁盘中并在Postgres表中存储该文件的路径。我知道将文件存储在磁盘中不再在Postgres中同步。有人可能会删除磁盘上的该文件,而我的列仍然引用它。因此,我深入了解并发现 Postgres具有一些功能,允许用户将文件保存在磁盘中并创建符号链接并存储在数据库本身中,以便同步。它也可以作为备份。 我还希望根据某些条件控制文件访问它。我们怎样才能在Postgres中做到这一点?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您可以将文件存储在文件系统中,并将其文件名或路径放入数据库中(但这样,您在备份或迁移数据时就必须记住这些文件),或者您可以让Postgres将文件存储在数据库使用BLOB,bytea或text数据类型。

参见文档:

如果您将文件存储在数据库中,那么它们将自动备份,您将拥有ACID和其他数据库好东西。

如果您将文件存储在文件系统中,那么您几乎可以独立使用,但性能特征可能对某些用例有一些优势。

还有第三种方法可以将文件存储在S3,Cloudinary,Uploadcare等服务中,并将其ID(通常是UUID)存储在数据库中 - 这是某些数据的常见用例,尤其是用户上传的照片等

有关详细信息,请参阅此处: