当前位置: 首页 > 知识库问答 >
问题:

下载大文件

钱嘉致
2023-03-14

我有一个文件表示为块的列表,目标是下载所有块,加入并保存为一个文件

  1. 它应该适用于大文件
  2. 应该是跨浏览器解决方案
    null
    null
    null
    null

但我仍然无法实现我的目标与涵盖的需求…
如果有人有经验,最好的解决方案,我恳请分享它在这里。谢谢

共有1个答案

林辰钊
2023-03-14

不幸的是,这里还没有真正的跨浏览器选项。

在Chrome中,您可以使用非标准文件系统API,也可以使用blob,如果blob很大,Chrome将使用文件系统。

在Firefox中,您可以使用非标准的IDBMutableFile。但是,它不能与下载API一起工作,因此必须使用window.location将浏览器发送到blob URL,然后浏览器必须下载该URL(可能不是所有文件扩展名都下载)。您还可能需要使用IDB persistent选项来拥有大于~2GB的文件。

StreamSaver之类的基于服务工作者的选项也可能有所帮助(也许这可以是Firefox的下载API替代方案),但是有(或者曾经有过?)浏览器等待完整响应的时间限制,这意味着您可能必须下载并存储块以便及时完成响应。

 类似资料:
  • 问题内容: 我需要使用curl下载远程文件。 这是我的示例代码: 但是它不能处理大文件,因为它首先读取内存。 是否可以将文件直接流式传输到磁盘? 问题答案:

  • 我们有一个运行在Linux上的Weblogic服务器,有多个受管服务器。我所关心的托管服务器的最大堆大小为1024MB。该服务器上部署了多个应用程序。其中一个应用程序处理来自REST api的响应来下载250MB的文件。对于大于50 MB的文件,有时没有问题,但有时服务器会因OOM错误而崩溃。以下是我的代码: 由于存在内存问题,我尝试采用InpuStream方法。以下是更改后的代码: 此代码没有进

  • 我刚刚在google Drive中得到了一个500MB文件的大列表。我该如何在本地Linux机器上排队下载它们呢? 我不能把它们都压缩成一个大的下载 我无法将它们全部设置为一次下载 我不能整天都在这里小批量下载它们。 我从google drive的wget/curl大型文件这样的文档中看到,google drive的api被贬低了,我们不能wget它们。 所以我正在寻找一种从谷歌驱动器按顺序下载大

  • 我正在尝试通过OKHTTP3下载zip文件(大小为160 Mb)。几秒钟后,应用程序与堆栈崩溃: IllegalStateException:在scheduler.worker线程上引发的致命异常。在java.util.concurrent.executors$runnableadapter.call(executors.java:59)在java.util.concurrent.futureta

  • 目前,我正在使用此代码来下载文件: 问题是当我尝试下载大文件时,代码会引发。 有没有其他方法可以避免这个错误来获取我的大文件? 编辑:另一个问题。 我正在考虑应用而不是: 和有什么区别?那个类会实现我的目标吗?

  • 当我运行下面的函数时,它下载源文件大约3分钟,然后关闭会话,即使一个1-1.6GB的文件只下载了38-41MB(变化)。 从Paramiko日志文件中可以看出,SSh连接在SFTP会话关闭时保持打开状态: DEB[20120913-10:05:00.894]Thr=1帕拉米科。运输:切换到新键...DEB[20120913-10:05:06.953]Thr=1 Paramiko。传输:重新密钥(命