首页 > 解决方案 > 在 ruby​​ 中进行可重新启动的下载

问题描述

我一直在试图弄清楚如何使用Down gem在 ruby​​ 中进行可重新启动的下载。

所以这个场景是通过一个不可靠的链接下载一个大文件。脚本应该在分配的超时时间内下载尽可能多的文件(假设它是一个 5GB 的文件,并且脚本有 30 秒)。我希望保存 30 秒的进度(部分文件),以便下次运行脚本时,它将再下载 30 秒的时间。在下载完整文件并将部分文件转换为完整文件之前,可能会发生这种情况。

我觉得我需要完成的一切都在这个 gem 中,但我不清楚我应该使用哪些功能,以及我需要自己编写多少功能。(流式传输?还是缓存?)我是一个红宝石初学者,所以我猜我使用缓存并将进度保存到自己的文件中,并在我有时间的情况下枚举多次。

你会如何解决这个问题?你会使用不同的宝石/方法吗?

标签: rubyhttp

解决方案


您可能不需要自己构建它。现有工具喜欢curl并且wget已经具有该功能。

如果你真的想自己构建它,你也许可以看看如何curlwget它(毕竟它们是开源的)并在 Ruby 中实现它。


推荐阅读