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

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

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

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

  • 图片的搜索速度可能很慢

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

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

【问题讨论】:

  • 您担心大小或搜索特定文件?
  • @RabeeAbdelWahab 我编辑了我的问题...

标签: php windows laravel xampp archive


【解决方案1】:

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

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

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

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

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

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

图片的搜索可能很慢

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 2012-06-26
      • 2010-09-16
      • 2010-11-15
      • 2014-05-04
      • 1970-01-01
      • 2013-05-04
      相关资源
      最近更新 更多