vue前端下载阿里oss超大文件的问题

这篇具有很好参考价值的文章主要介绍了vue前端下载阿里oss超大文件的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在开发一个大文件压缩下载需求,由于附件都是从阿里oss上下载,且一次下载多个文件,然后进行打包压缩,前期使用了axios+jszip+file-saver 来进行处理,但是当文件超过3个G的时候会出现out of memory和RangeError: Array buffer allocation failed错误。vue 大文件下载,前端,vue.js,javascript

下面贴出代码:

vue 大文件下载,前端,vue.js,javascript 

vue 大文件下载,前端,vue.js,javascript

 后面尝试使用streamsaver+fetch下载大文件

  • 使用常用的 axios 进行下载时,会遇到以下一些问题:
  1. 超时问题:如果下载的文件较大或网络连接较慢,可能会导致请求超时。
  2. 内存问题:如果下载的文件非常大,将整个文件存储在内存中可能会导致内存溢出,下载的文件会出现截断或损坏。
  3. 进度跟踪问题:axios 默认不提供下载进度的功能。需要使用 axios-progress-bar 等第三方库来实现下载进度的监控和显示。
  4. 下载文件时,需要等待整个文件流都下载到内存中才会弹出浏览器的下载文件保存对话框,用户体验较差。
  • 使用Fetch下载相比Axios在文件下载方面的一些优势:
  1. 原生支持:Fetch是浏览器原生提供的API,不需要额外的第三方库或依赖。这意味着在现代浏览器中,无需额外配置即可直接使用Fetch进行文件下载。
  2. 内置的流支持:Fetch使用ReadableStream对象处理响应数据,这使得在下载大文件时能够有效地处理数据流,减少内存占用。相比之下,Axios默认将整个响应加载到内存中,对于大文件下载可能会导致内存问题。
  3. 下载响应开始就可以弹出浏览器下载保存对话框,并且不影响文件流下载,而axios需要等待整个文件流都下载到内存中才会弹出浏览器的下载文件保存对话框
  • StreamSaver:StreamSaver.js 是一个用于在浏览器中实现流式文件下载的 JavaScript 插件。它提供了一种简单而强大的方式来下载大文件或流式数据,而无需将整个文件加载到内存中
  1. 逐步下载:StreamSaver.js 通过逐步写入磁盘,实现了流式下载,避免了将整个文件加载到内存中
  2. 跨浏览器兼容性:StreamSaver.js 支持主流的现代浏览器,包括 Chrome、Firefox、Edge 和 Safari。
  3. 断点续传:通过在下载过程中保存已下载的部分,StreamSaver.js 支持断点续传,即使在网络中断或下载过程中停止,也可以从上次中断的地方恢复下载。

vue 大文件下载,前端,vue.js,javascript

 文章来源地址https://www.toymoban.com/news/detail-673063.html

                    

到了这里,关于vue前端下载阿里oss超大文件的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端各类文件下载问题

    一、 通过a标签的download属性进行下载 a标签的href指定下载文件地址;download可用于修改下载文件名,不指定就用默认文件名; a标签download属性在用于同源文件下载的时候,没有任何问题;表现行为都是下载文件 a标签在下载第三方资源(非同源)文件,download属性会根据浏览器对

    2024年02月11日
    浏览(27)
  • windows.open 在vue前端实现文件下载(自定义下载文件名)

    1. 将要下载的文件放在前端项目的 assets 文件夹内  我要下载的文件为  src/assrts/xxx/xxx模板.csv  2. 在页面创建下载按钮    3. 导入该文件 4. 在build文件夹下的webpack.base.conf.js 文件中,添加csv(或者其他)解析类型 5. 编写下载方法 参考自:vue 实现本地excel文件下载功能_璐哈

    2024年02月05日
    浏览(89)
  • 【Java 实现文件下载】vue前端+java后端实现文件下载详解(附源码)

    【 写在前面 】前端时间总结了一下有关java文件上传的功能,也给不少读者带来一些帮助,因此今天继续完善文件下载这套体系,希望能给屏幕前的您带来实质性的帮助,其实文件下载最怕的就是中文乱码的现象,当然这个我单独写了一篇文章解释,这里不做详谈。 涉及知识

    2024年02月09日
    浏览(51)
  • vue 前端自动打开文件地址进行下载

    最近在做异步导出的功能,导出的过程中前端另外启动一个查询导出进度的线程接口。如果导出完成后,把生成的文件上传到服务器,返回给前端一个文件的下载地址; 前端自动打开这个地址进行跳转下载。 有两种方式 这种方式有一个问题,会被浏览器自动拦截弹出的窗口

    2024年02月04日
    浏览(41)
  • 前端js下载zip文件异常问题解决

    目录 一,本文解决问题如下 二,原下载代码 1,ajax get 下载文件 2,下载异常图: 三,成功下载的 1, JQuery 实现文件下载xhr 2,图例 引言: 本人使用的ajax 下载,由于下载CSV,文本之类的没有问题,下载zip是出现各种问题。发现是设置responseType:\\\"blob\\\"没生效,项目中又没有

    2024年02月09日
    浏览(38)
  • #vue3 实现前端下载excel文件模板功能

    一、需求: 前端无需通过后端接口,即可实现模板下载功能。 通过构造一个 JSON 对象,使用前端常用的 第三方库 xlsx ,可以直接将该 JSON 对象转换成 Excel 文件,让用户下载模板 二、效果: 三、源码如下:

    2024年01月19日
    浏览(64)
  • vue纯前端实现下载excel文件,本地和测试环境都可正常下载

    vue2纯前端实现下载excel文件,本地和测试环境都可正常下载。 1、把后端给的excel文件放到本地项目文件夹中,位置如图所示: 2、在需要展示下载功能的页面中引入该excel文件,如图所示: 3、使用a链接,href绑定引入的excel文件路径,并添加download属性,download属性值就是下载

    2024年02月13日
    浏览(53)
  • 前端下载后端文件流,文件可以下载,但是打不开,显示“文件已损坏”的问题分析与解决方案

    我在前端使用axios接收后端xlsx表格文件流并下载,xlsx文件能够下载成功,但是打开却显示文件无法打开 请求API封装: Content–Type 以及 responseType 经核对均没有问题 接口调用: 下载函数封装: 预览: 二进制数据 可以看到文件数据已经接收到并且是二进制的,但是转为的xlsx文件却

    2024年02月04日
    浏览(55)
  • vue 纯前端预览pdf,纯前端实现pdf加水印下载文件也带水印,防止pdf下载

      原理:主要是利用pdfh5这个插件来完成的   使用方法:   1.页面需要有一个容器例子:div id=\\\"demo\\\"/div   2.下载pdfh5插件 npm install pdfh5   (注意:webpack5之后不会下载polyfill 需要手动下载 所以引入pdfh5的时候会报错)   解决方案:下载 node-polyfill-webpack-plugin npm install node-polyfill-

    2024年04月15日
    浏览(63)
  • vue下载pdf文件纯前端实现,不跳页面实现

    一、引入download.js npm install downloadjs 地址:https://www.npmjs.com/package/downloadjs 注意:使用download.js时下载的文件内容为该文件的url(url和filename参数有中文的话下载后的文件会损坏打不开,需要修改源码) 二、复制一份下载好的downloadjs 文件 , 修改后的源码

    2024年02月12日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包