0

我正在为潜在客户研究解决方案。他们要求能够从他们的在线目录中下载大量 MP3 (1000+)。

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

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

一个想法是为他们创建一个 FTP 队列或 Torrent 类型的下载链接。有什么东西可以拉出这样的东西吗?

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

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

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

示例:东海岸用户使用 100 个新文件更新目录。West Coast 用户需要使用从在线目录中检索到的新文件更新离线目录。

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

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

4

2 回答 2

1

GNU wget?它可以下载递归。只需给 wget 一个服务器上所有文件的列表, 例如http://www.example.org/filelist.html,其中包含 file1.mp3、file2.mp3 等链接(apache 通常会自动生成这样的索引文件)没有 index.html/php 在它被调用。

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

于 2010-10-25T20:26:49.953 回答
0

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

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

更新:您的方法不关心客户端上真正可用的内容,您将根据您对客户端已有的(可能不正确的)知识来准备 ZIP 文件。

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

于 2010-10-25T20:31:18.517 回答