您可以将图像存储在归档系统的文件夹中
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
图片的搜索可能很慢
索引是您最好的解决方案,拥有一个包含所有文件及其路径的数据库,这将使您可以轻松地直接访问文件而无需搜索它们;例如,保留name
、path
和其他信息。
如果您正在谈论搜索他们的内容,如果不仅仅是图像,我建议您查看基于 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
。这样我以后可以轻松地将档案分成多个卷,并且按日期搜索几乎是即时的。
【讨论】:
以上是关于您可以将图像存储在归档系统的文件夹中的主要内容,如果未能解决你的问题,请参考以下文章