1
28
这是一个相当标准的设计问题,并没有真正的“一个真正的答案”。 我通常遵循的经验法则是“数据进入数据库,文件进入文件”。 要记住的一些注意事项:
简而言之,人们倾向于将文件系统用于文件,因为他们最支持类似文件的习惯用法。不过,您没有必要这样做,文件系统越来越像数据库,所以最终看到完全收敛一点也不奇怪。 |
2
6
对于将文件系统用于文件,有一些好的建议,但是这里还有一些其他的事情要考虑。如果您要存储敏感或安全的文件/附件,那么使用数据库确实是唯一的方法。我已经构建了一些应用程序,这些应用程序的数据不能被输出到文件中。出于安全考虑,必须将其放入数据库。如果没有适当的安全措施,您不能将它保存在文件系统中,供服务器/计算机上的用户查看或使用。使用像Oracle这样的高级数据库,您可以非常紧密地锁定数据,并确保只有适当的用户可以访问该数据。 但其他的观点是非常有效的。如果你只是做一些像虚拟人物图像或非敏感信息之类的事情,文件系统对于大多数插件系统来说通常更快更方便。 数据库非常容易设置,可以将文件发送回去;它的工作要多一些,但如果你知道你在做什么,只需要几分钟。所以,是的,文件系统是更好的总体方法,IMO,但是当安全性或敏感数据是主要问题时,DB是唯一可行的选择。 |
3
2
埃里克的回答很好。我还要补充一点,如果您想进行任何缓存,那么缓存静态文件比缓存数据库内容更容易也更简单。 |
4
2
我不知道墓碑有什么问题。您始终可以从中重建文件系统存储区,例如,在使用系统时将文件缓存到本地Web服务器。 但权威存储应该始终是数据库。这意味着您可以通过抛出数据库并从源代码管理中导出代码来部署应用程序。完成。 添加Web服务器完全没有问题。 |
5
0
如果使用插件,例如 Paperclip 你也不用担心任何事。这里有一个叫做文件系统的东西,文件应该放在这里。仅仅因为这有点困难并不意味着你应该把你的文件放错地方。使用回形针(或其他类似的插件)并不难。所以,gogo文件系统! |
6
0
无法找到此问题的最新答案,我已实现 自Rails 5.2以来提供的用于活动存储的数据库服务,与任何其他活动存储服务一样工作,但将文件内容存储在特殊的数据库列中,而不是云服务。 该实现基于一个标准的Rails活动存储服务,添加了一个新模型的迁移:一个额外的表,它将blob内容存储在一个二进制字段中。服务根据活动存储的请求创建和销毁此表中的记录。 因此,此服务一旦安装,就可以通过标准Rails活动存储API使用。 https://github.com/TitovDigital/activestorage-database-service 请注意使用数据库存储文件的所有优点和缺点。 有了正确的数据库,它将提供全面的ACID支持,并可以将文件存储和删除打包成事务。在DevOps中,它也更容易配置,因为需要配置的服务更少。 大文件或大流量是危险的情况。两者都会给应用程序和数据库服务器带来不必要的压力。 |
Animesh Arya · 关联模型的Rspec 2 年前 |
Kellen · 查看$卷展栏功能列表 2 年前 |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
solidsnake99 · Rails db:如何绕过验证 2 年前 |
Spyros · 从数组中删除nil值,并从引用数组中删除相应的项 2 年前 |
Pauli-E · 当div打开并滚动到屏幕上时,向div添加类 2 年前 |
ejoka · 如何使用Rails 7模型属性作为CSS标记值 2 年前 |