mysql - 管理应用程序生成文件的正确方法
问题描述
tl;博士
在我的 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
那么保存文档的正确方法是什么?
谢谢
阿米特
解决方案
你应该首先定义一个事实来源。除非您在法律上有义务保留这些文件的副本并且不经常访问它们,否则我什至根本不会费心存储这些文件并根据要求生成它们。
如果没有,请保持数据库清洁,blob 会使它变得巨大。在没有这些路径的情况下将它们放入冷库(再次假设它们没有被太频繁地访问) 。如果路径依赖于经常变化的信息,那么文件服务器和您的系统都不能正常运行。
而是在您的数据库中存储一个修订号,该文件可以在其中找到,并将路径结构限制为很少更改的信息。
喜欢{building}/{apartment}/{tenant}_{revision}.pfd
这 - 取决于您的备份结构 - 将允许您在必要时进行时间旅行,并且不会一直强制重新索引。
注意:我对您的用例了解不多。
推荐阅读
- python - 根据某些值对字典中的值求和
- unity3d - 如何在使用 Agora API 接收原始音频数据的同时静音本地音频播放?
- c++ - arr[n] 是否在 C++ 中打印数组的长度?
- reactjs - 如何在地图上使用 react-semantic-ui transition.group
- variables - 更新 Azure DevOps 版本的变量组快照
- php - Sylius 添加管理页面
- mysql - 如何在没有自动增量的情况下增加 id?
- kubernetes - Kubernetes HPA 是如何工作的?
- javascript - 以编程方式启动的视频在 iPhone 上以空白打开(safari 和 chrome)
- java - resultactions 将 httpstatuscode 设置为特定值