【问题标题】:downloading large amount of files下载大量文件
【发布时间】:2010-10-25 20:20:14
【问题描述】:

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

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

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

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

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

编辑:这是我们正在努力实现的总体流程/目标。

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

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

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

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

【问题讨论】:

    标签: ftp zip gzipstream ziparchive


    【解决方案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

    【讨论】:

    • 在此处查看有关递归下载的进一步说明。 sunsite.ualberta.ca/Documentation/Gnu/wget-1.7/html_node/… 不要忘记 -c 选项(--continue),所以当下载中断时,您可以使用相同的参数重复该命令,它会从中断处继续。
    • 我们试图让这一切尽可能简单。我认为这个方向对于他们当前的用户群来说不会那么容易。我更新了上面的总体目标/问题,也许这将有助于解释一切。感谢您的建议!
    【解决方案2】:

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

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

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

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

    【讨论】:

    • Eugene,我更新了我们面临的总体目标/问题。我希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    相关资源
    最近更新 更多