我正在创建一个存档系统,让我将扫描的文件存储在目录中。我将我的图像放在一个名为upload的目录中。
我在windows base XAMPP服务器中使用Laravel框架制作了系统。
文件已损坏或将到达文件 限制。
搜索图像可能会非常慢
到目前为止,我有12000个图像存储在该目录中,并且发现搜索不是问题。但我担心将来可能会很麻烦。
所以任何建议或在一个目录中存储数百万张图片都可以。?
答案 0 :(得分:2)
希望这有助于消除您的疑虑:
令我担心的一件事是将存储在其中的图像 目录可以达到数百万。
硬件现在能够以便宜的价格处理大量文件,这在很大程度上取决于您正在构建的平台以及这些文件的增长率。但是,如果你不是自己管理这个,像Amazon S3这样的解决方案可以提供帮助。
对于目录,最好使用一种机制来帮助您将这些文件分成多个文件,例如,可以使用文件名的前2-3个字符来构建一个可以存储的目录。档案:
test.doc
将变为t/e/s/test.doc
文件已损坏或将达到文件限制。
如果上传过程成功完成,文件损坏的情况需要处理更多逻辑;取决于文件类型,例如this
搜索图像可能会非常慢
索引是您的最佳解决方案,拥有所有文件及其路径的数据库,这将很容易让您直接访问文件而无需搜索它们;例如,保留name
,path
和其他信息。
如果您正在讨论搜索其内容,如果不仅仅是图片,我建议您查看基于Lucene的产品,例如Solr或Elastic Search
答案 1 :(得分:0)
从技术上讲,你可以在一个目录中拥有那么多,ext2 / ext3文件系统可以在一个目录中拥有最多~10个 20 文件,但是访问它们可能会非常慢,通常作为经验法则 - 一个不会在一个目录中放置超过10-20万个文件以避免性能问题。
例如,FAT32不支持超过65k
请参阅hspec/Run.hs
因此,您可以根据您的负载将它们划分为子目录,例如按年/月/日/用户名/等等。
我有一个系统,每天存储大约0.5-2k个文件并使用文件路径
base_dir/year/month/day/fulldate_filename.extension
。这样我以后就可以轻松地将存档分成卷,按日期搜索几乎是即时的。