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

时间:2016-01-26 06:29:52

标签: php windows laravel xampp archive

我正在创建一个存档系统,让我将扫描的文件存储在目录中。我将我的图像放在一个名为upload的目录中。

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

  • 让我担心的一件事就是存储在那里的图像 目录可以达到数百万。
  • 文件已损坏或将到达文件 限制。

  • 搜索图像可能会非常慢

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

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

2 个答案:

答案 0 :(得分:2)

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

  

令我担心的一件事是将存储在其中的图像   目录可以达到数百万。

硬件现在能够以便宜的价格处理大量文件,这在很大程度上取决于您正在构建的平台以及这些文件的增长率。但是,如果你不是自己管理这个,像Amazon S3这样的解决方案可以提供帮助。

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

  

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

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

  

搜索图像可能会非常慢

索引是您的最佳解决方案,拥有所有文件及其路径的数据库,这将很容易让您直接访问文件而无需搜索它们;例如,保留namepath和其他信息。

如果您正在讨论搜索其内容,如果不仅仅是图片,我建议您查看基于Lucene的产品,例如SolrElastic 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。这样我以后就可以轻松地将存档分成卷,按日期搜索几乎是即时的。