您可以将图像存储在归档系统的文件夹中

Posted

技术标签:

【中文标题】您可以将图像存储在归档系统的文件夹中【英文标题】:Images you can store in a folder for archiving system 【发布时间】:2016-05-02 16:18:57 【问题描述】:

我正在创建一个存档系统,让我可以将扫描的文件存储在一个目录中。我把我的图片放在一个叫做上传的目录中。

我在windows base XAMPP服务器中使用Laravel框架制作了系统。

让我担心的一件事是,将存储在 目录可以达到数百万。

文件将损坏或将到达文件 限制。

图片的搜索速度可能很慢

到目前为止,我在该目录中存储了 12000 张图像,并且发现搜索不是问题。但我担心这将来会很麻烦。

所以任何推荐或在一个目录中存储数百万张图片都可以。?

【问题讨论】:

您担心大小或搜索特定文件? @RabeeAbdelWahab 我编辑了我的问题... 【参考方案1】:

希望这有助于消除您的顾虑:

让我担心的一件事是,将存储在 目录可以达到数百万。

硬件现在能够以低廉的价格处理大量文件,这在很大程度上取决于您正在构建的平台以及这些文件的增长比例。但是,如果您不想自己进行管理,Amazon S3 之类的解决方案会有所帮助。

在目录的情况下,最好使用一种机制来帮助您将这些文件拆分为多个文件,例如使用文件名的前 2-3 个字符来构建一个可以存储目录的目录文件在: test.doc 会变成t/e/s/test.doc

文件将损坏或将达到文件限制。

如果上传成功,文件损坏的情况需要更多的逻辑处理;取决于文件类型,例如this

图片的搜索可能很慢

索引是您最好的解决方案,拥有一个包含所有文件及其路径的数据库,这将使您可以轻松地直接访问文件而无需搜索它们;例如,保留namepath 和其他信息。

如果您正在谈论搜索他们的内容,如果不仅仅是图像,我建议您查看基于 Lucene 的产品,例如 Solr 或 Elastic Search

【讨论】:

【参考方案2】:

从技术上讲,您可以在一个目录中拥有这么多文件,ext2/ext3 文件系统在一个目录中最多可以拥有 ~ 1020 个文件,但是根据经验,访问它们可能会非常慢- 一个不会将超过 10-20,000 个文件放在一个目录中以避免性能问题。

另外,例如 FAT32 不支持超过 65k

见How many files can I put in a directory?

因此,您可以通过某种模式将它们划分为子目录,例如根据您的负载按年/月/日/用户名/等划分。

我有一个系统每天存储大约 0.5-2k 个文件并使用文件路径 base_dir/year/month/day/fulldate_filename.extension。这样我以后可以轻松地将档案分成多个卷,并且按日期搜索几乎是即时的。

【讨论】:

以上是关于您可以将图像存储在归档系统的文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Impala 中存储图像文件

ios应用数据存储方式(归档) - 转

iOS开发UI篇—ios应用数据存储方式(归档)

iOS归档使用

在上传到 Firebase 存储之前,您是不是必须知道图像文件类型?

Oracle 数据库归档满处理办法