gpt4 book ai didi

php - 为客户端下载动态创建大 zip

转载 作者:IT王子 更新时间:2023-10-29 00:39:31 25 4
gpt4 key购买 nike

有一个项目,每个用户都可以下载一个包含大约 2GB 数据的 zip...

唯一的问题是,这个 zip 文件中有几个非常小的文件必须针对每个用户进行更改。

除了不要求所有内容都在 zip 中之外,是否有一种优雅的方法来解决这个问题?我考虑过的想法:

1) 将挂单推送到队列中,并在资源可用时处理该队列...处理将意味着为每个订单创建一个新的 zip,然后在 N 天后将其删除

2) 在通过原始推送发送之前以某种方式在 PHP 中实时操作 zip(即吐出 header ,然后根据文件 + 自定义文件生成数据)

对于我可能遇到的最佳方法或内存问题有什么想法吗?谢谢!

最佳答案

ZIP 文件结构基本上是:

  1. 魔术 header ,将文件识别为 ZIP 存档。
  2. 所有文件数据,连接在一起。 (可以选择压缩单个文件。)
  3. 存档目录,包含文件元数据(名称、大小等)以及文件数据的偏移量。

这意味着您应该能够即时构建和输出 ZIP 存档,只需要将目录数据保留在内存中,直到您最后将其写出。 ZIP 存档本身永远不需要存在于磁盘上。

如果您使用这种方法,同时向多个客户端提供 ZIP 文件将不会出现并发问题,并且您在构建存档时也不必使用任何磁盘空间。

关于php - 为客户端下载动态创建大 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7310971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com