什么是最合适的文件存储方式?

What is the most appropriate way to store files?

我正在处理一个问题,在开始开发之前,我决定做一些研究。

所以问题是存储文件时什么是有效的解决方案?

我读到过,有些人反对将文件存储在数据库中,因为它会对备份/恢复产生负面影响,在读取大文件等数据库时会增加更多处理时间...

好的选择是使用 S3 或任何其他云解决方案来存储文件,但对于当前的客户来说,云并不好。

另一种选择是将文件存储在文件系统下。这个概念很清楚,但我试图在实施该解决方案之前了解我需要了解的内容。

例如,我们需要考虑我们如何构建目录,如果我们将 100 000 个文件存储在一个目录中,打开它可能会变慢等等。还有可以存储的最大文件数量一个目录。

有没有第 3 方工具可以帮助管理文件系统中的文件?自动分区文件并将它们放在目录中?

我使用的软件在文件系统中有超过 1000 万个文件,您将如何构建文件夹取决于,但我所做的是:

  1. 为每个实体(文档、图像...)创建一个文件夹
  2. 在每个文件夹中为每个 ID 对象创建一个文件夹,ID 是文件夹的名称,并将它们的文件放入其中,但这可能会有所不同。

ID 为 15 的人的示例:

ls /storage/Person/15/Image/

将给我这 4 张图像,这些图像在我链接到 ID 为 15 的人的数据库中:

Output:
1.jpg
2.png
3.bmp
4.bmp

如果你有大量的元素,你可以将 ID 的每一位冷分隔到一个子文件夹中,即:ID 16549 的人将具有此路径:/storage/Person/1/6/5/4/9/Image/

关于文件夹中文件的限制我建议你阅读这个帖子:

关于第 3 方工具我不知道,但可以肯定的是,您可以将此逻辑构建到您的代码中。

英语不是我的第一语言,如果您有什么不明白的地方,请告诉我。