【问题标题】:PHP storage of many large filesPHP存储许多大文件
【发布时间】:2013-04-21 12:14:52
【问题描述】:

我正在设计一种存储许多大文件的解决方案。从我在 stackoverflow 上读到的内容来看,像 Mongodb 这样的数据库系统是存储大量文件的最佳方式(来源:Scalable File Storage)。为什么?当然,我最好将文件简单地存储在可扩展系统(如 Amazon)上的文件系统中,并为每个文件指定一个 ID。

试图找到我看过的答案:

到目前为止,我很感激:

  1. 存储在文件系统上会使服务器迁移更加困难。
  2. 一个目录中可以保存的文件和文件夹的数量是有限制的。

这两点似乎都不能让我相信将文件保存在数据库中的额外工作是值得的。在我看来,如果我在其中存储大文件而不是直接存储在文件系统中,则会增加数据库灾难性损坏的风险。我目前正在考虑将文件存储在 Amazon s3 解决方案中。如果我疯了和/或我是否忽略了任何事情,你能告诉我吗?

【问题讨论】:

  • 我不确定你在做什么,但如果涉及金钱,我会使用第 3 方来确保它们被安全存储。然而,在大多数情况下,我会将它们存储在文件系统中。问题是,您需要提出一个好的数据库模式来组织文件及其所有信息。您必须问自己的另一个问题是,文件是否应该受到保护?如果是这样,您需要采取额外的步骤来确保它们不能通过 URL 操作轻松访问。
  • 存储大文件的最佳方式是在服务器的文件系统或 CDN 上,而不是在数据库中 - 仅在数据库中存储对文件的引用
  • 我会使用 S3。我会考虑开发自己的系统的唯一条件是是否存在排除使用 S3 的合规性要求。在小规模上,构建一个系统来构建一个与 s3 具有相同性能/可靠性的系统是非常昂贵的。

标签: php mongodb amazon-ec2


【解决方案1】:

如果您想将文件存储在自托管服务器上,那么您可以选择 MongoDB。 MongoDB 是通过自托管服务器存储大文件数据的最佳选择。但是如果你不想维护自托管服务器,那么你可以选择 Amazon S3。

【讨论】:

    【解决方案2】:

    数据库用于数据而不是文件!我遇到过很多情况,很多人喜欢将它存储到数据库中,无论是 mangodb 还是其他。从逻辑上讲,这不值得。

    您的问题“值得为编程付出努力吗?”;如果你偶尔做一次,真的不。将东西放入数据库需要付出很多努力。但是,如果您是一名开发人员,一旦习惯了就经常使用它,即使不值得这样做,您也会这样做:)

    我投票支持您使用文件系统存储文件而不是数据库。而对于没有的困难。的文件,你肯定会找到解决它的方法。

    【讨论】:

    • 数据库存储也有很多好处,值得一提,事实上许多cdns以存储在数据库中的块格式存储文件数据
    • @Sammaye,完全同意你的看法。但是 CDN 是成熟的系统,其资源比我们的普通托管服务器要好得多。
    • 诚然,在数据库托管因没有真正的解释而自动放弃之前,请记住这一点:)
    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    相关资源
    最近更新 更多