【问题标题】:Saving 700 images locally from an XML file which loads every 5 minutes从每 5 分钟加载一次的 XML 文件本地保存 700 张图像
【发布时间】:2025-12-24 23:40:16
【问题描述】:

我有一个应用程序,它每 5 分钟读取一个 xml 文件(使用 cronjob)并将大约 700 个 url 保存到数据库中的图像。 5 分钟后,大部分图像被删除并重新开始。

如果我将图像保存在本地,我的网站会分配得更快,但我想要一些关于如何做到这一点的建议。

  1. 我尝试使用 fopen、curl - 但一次写这么多图像只会让一切都停止。
  2. 将它们保存为 blob 怎么样?这会对速度有多大影响?

有什么想法吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    我不建议存储为 blob,而是您可以将本地存储的图像名称保存到数据库中。在 blob 中存储这么多图像将不必要地占用大量资源。

    你可以试试这个。 当您访问该 xml 文件时,获取所有 url 并存储到临时表中,例如 unsaved_images_url,并以 idurl 作为列。

    然后在本地从上面的表中获取行并将图像保存在磁盘上。这可以通过 shell 脚本或我不确定的东西来完成。并在本地保存图像后,从数据库中删除该行。

    【讨论】:

      【解决方案2】:

      如果您不需要重命名它们,那么为什么不按照这些方式做一些事情(假设 $images 是一个 URL 数组):

      foreach($images as $image) {
          exec("wget $image");
      }
      

      这会比创建和写入文件更快。

      【讨论】:

        最近更新 更多