我正在为潜在客户研究解决方案。他们请求能够从其在线目录下载大量 MP3(1000 多个)。

我研究/测试了使用 ZipArchive 构建包含所有 MP3 的 zip,但遇到了明显的内存泄漏问题,从而排除了该解决方案。

我现在正在尝试跳出框框思考。

一种想法是为它们创建一个 FTP 队列或 Torrent 类型的下载链接。有什么东西可以完成这样的事情吗?

任何帮助或建议的方向将不胜感激!谢谢!!

编辑:这是我们试图实现的总体流程/目标。

客户为电视/电影播放创作音乐。他们维护一个在线目录和发送给潜在买家的本地副本。在线目录和离线目录需要互相镜像。问题是,他们有多个办公室,必须使用从许多不同位置添加到在线目录中的新文件来更新其本地副本

例子:东海岸用户更新目录,包含 100 个新文件。西海岸用户需要使用从在线目录检索到的新文件来更新离线目录。

我们希望根据我们在 MySQL 中维护的用户下载历史记录,为每个用户更新其目录所需的文件创建自定义 zip。我们正在测试 ZipArchive,但我们似乎无法构建超过 175 MEG(或多或少)的 Zip。我们正在测试 ZipStreaming,但遇到了一些问题。

我希望这能澄清我们面临的总体目标和问题。

有帮助吗?

解决方案

GNU wget的? 它可以下载递归。只要给wget的所有文件的列表中的服务器,例如上   http://www.example.org/filelist.html 包含了像file1.mp3链接, file2.mp3等(阿帕奇通常WENN目录自动生成这样的索引文件,而不的index.html / PHP的在它被调用。

http://linux.die.net/man/1/wget

其他提示

坦率地说,我无法从您的帖子中识别出实际的问题。如果您正在寻求最大限度地减少网络负载,那么您需要记住 MP3 文件压缩得不好,因为它们已经被压缩了(虽然不是尽可能好,但是很好)。如果您正在寻找一种传输方式,任何文件传输协议都可以(FTP、SFTP、HTTP、WebDAV)。

如果您需要灵活性和功能,我建议使用 SFTP:这是一个用于远程文件系统访问的协议,因此除了“获取文件”操作之外,它还有很多有用的操作,包括机器可读的目录列表(在 FTP 中并不总是可用,在标准 HTTP 中也不可用)、内置 ZLib 压缩、内置- 有可能恢复文件传输和更多奖金。HTTP 也有 ZLib 压缩,但这一压缩并不总是可用。

更新:你的方法并不关心是什么 真的 在客户端上可用,并且您将根据您对客户端已有的了解(可能不正确)来准备 ZIP 文件。

如果客户端和服务器都是您开发的应用程序,那么您应该使用 RSync 协议或类似的在线更新数据(不使用任何 ZIP 文件)并下载客户端上缺少的文件。如果客户端和服务器之间无法直接通信,您可以让客户端将其状态发送到服务器,然后服务器将准备一个单独的包。至于 ZIP 功能 - 仅当您使用批量更新时才需要它(客户端和服务器之间没有实时通信)。我不知道你正在使用什么技术,但如果你 仅有的 问题在于 ZIP 组件,您可以使用其他东西进行数据打包 - 不同的 ZIP 组件(对于 .NET 和 VCL,我们有 邮政编码组件)或其他一些包装解决方案(例如,我们的 索尔FS 产品没有尺寸限制)。不幸的是,我不知道类似 RSync 的实现可以作为组件使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top