【问题标题】:Right way to manage application generated files管理应用程序生成文件的正确方法
【发布时间】:2019-05-29 02:23:14
【问题描述】:

tl;dr

在我的 node.js 应用程序中,我创建了 pdf 文档。保存它们的最佳/正确方法是什么?现在我使用 node.js 文件服务器和 shell.js 来做。

我正在开发一个 node.js Web 应用程序来管理公寓和租户以用于学习目的,并且在某些时候我创建了我想保存在路径下的 PDF 文档

/documents/building_name/apartment_name/tenant_name/year/example.pfd

现在,如果用户想通过 http PUT 请求更改建筑物、公寓或租户名称,我会更改数据库,但也想更改路径。

两者都可以,但我无法为这些函数编写好的测试。

现在一位朋友告诉我,将文档保存在文件服务器上是一种不好的做法,我最好使用 BLOB。

另一方面,谷歌并不真正同意使用 blob

那么保存文档的正确方法是什么?

谢谢

阿米特

【问题讨论】:

    标签: mysql node.js blob


    【解决方案1】:

    您应该首先定义一个事实来源。除非您在法律上有义务保留这些文件的副本并且不经常访问它们,否则我什至根本不会费心存储这些文件并根据要求生成它们。

    如果没有,请保持数据库清洁,blob 会使它变得巨大。将它们放入冷存储(再次假设它们没有被太频繁地访问)没有这些路径。如果路径依赖于经常变化的信息,那么文件服务器和您的系统都不能正常运行。

    而是在您的数据库中存储一个可以找到该文件的修订号,并将路径结构限制为很少更改的信息。

    点赞{building}/{apartment}/{tenant}_{revision}.pfd

    这 - 取决于您的备份结构 - 将允许您在必要时进行时间旅行,并且不会一直强制重新索引。

    注意:我对您的用例了解不多。

    【讨论】:

    • 嗯,在我开始学习计算机科学之前,我曾在房地产行业工作。我只需要一个应用程序创意,如果用户完成我的最后一项工作,我可以更好地估计他需要什么,但该项目仅用于教育目的。因此,没有直接的法律义务或禁令。数据库已标准化。如果我无论如何都必须在数据库中保存诸如修订之类的数据将所有文档保存在同一个文件夹中然后有一个表格文档(id PK,tenant_id,year,revision)并且在搜索文档时只是看对于 /documents/{id}.pdf?
    • 当然,我假设您希望至少有一些路径结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    相关资源
    最近更新 更多