前端 dlhelper 下载辅助库(支持链接后台下载、代理下载、Blob 数据下载,针对代理下载灵活使用)

简介: 前端 dlhelper 下载辅助库(支持链接后台下载、代理下载、Blob 数据下载,针对代理下载灵活使用)

一、简介

  • 一个简化前端下载功能的 js 辅助库,支持链接后台下载、代理下载、Blob 数据下载,针对代理下载灵活使用。
  • 当一个项目需要下载的素材资源有多个域名时,使用改库可以更好的实现辅助下载。

二、使用

  • 安装
$ npm i dlhelper
  • 引入
import * as dl from "dlhelper";
  • 案例:后台下载
dl.dlFetch(
  "https://test-public.juhaokanya.com/prod/aac5812fe2f6f3e1efeb6a86c8eb2867.png"
)
  .then(() => {
    console.log("下载成功");
  })
  .catch((err) => {
    console.log("下载失败");
  });
  • 案例Blob 数据下载
// 转成 Blob 对象
const blob = new Blob(["字符串"]);
// 进行下载,默认是 txt 文件,可通过传入文件名进行修改下载的文件类型
dl.dlBlob(blob);
dl.dlBlob(blob, "test.txt");
  • 案例:代理下载
  • main.js 配置代理标识与代理地址(可选
// 引入
import * as dl from 'dlhelper'
// 配置代理
dl.setProxy({
  // 代理标识: [代理地址, 代理地址]
  // 这么配置,当使用 dl.dlProxy() 传入 url 时,可传入 '/download/test.png'、'https://www.baidu1.com/test.png'、'https://www.baidu2.com/test.png', 全链接的会自动匹配代理地址,匹配成功替换成对应的代理标识
  // 后面的数组参数主要是为了存放正式地址、测试地址、预发布地址等
  '/download/': ['https://www.baidu2.com/', ...],
  '/download': ['https://www.baidu1.com', ...],
  '/test/': [],
  ...
})
  • 本地代理配置(项目配置文件中添加)
// 开发配置
devServer: {
  ...
  proxy: {
    // 代理配置
    '/download/': {
      target: 'https://www.baidu2.com/',
      ws: false,
      changeOrigin: true,
      pathRewrite: {
        '^/download/': ''
      }
    }
  }
}
  • 服务器代理配置(服务器 server 中添加,正测试都需要)
server {
  ...
  location /download/ {
    proxy_pass https://www.baidu2.com/;
  }
}
  • 项目中使用
// 使用这个必须配置 main.js
// 会跟配置好的代理进行校验
dl.dlProxy("/download/test.png");
dl.dlProxy("/download/test.png", "aaa.png");
dl.dlProxy("https://www.baidu1.com/test.png");
// 使用这个 main.js 配置可选
// 如果不想在 main.js 中配置 dl.setProxy(),可以在知道这是配好的代理下载链接时,直接通过代理链接下载(如:/download/test.png,不能是全链接,全链接没法匹配替换)
// 注意:dl.dlClick() 只能下载代理文件链接、同域名文件链接,像 'https://www.baidu1.com/test.png' 这种就是非代理链接了,上面支持是因为内部会进行匹配替换成代理标识
dl.dlClick("/download/test.png");
相关文章
|
1月前
|
JavaScript 前端开发
vue前端下载,实现点击按钮弹出本地窗口,选择自定义保存路径
这个不用代码实现(网上也找不到方法可以调出另存为窗口),更改浏览器设置就可以,否则,现在的浏览器都是默认直接保存到下载路径中
65 3
|
1月前
|
前端开发
前端跳转链接报错403的原因以及解决方案
前端跳转链接报错403的原因以及解决方案
128 1
|
1月前
|
前端开发
前端接受后端文件流并下载到本地的方法
前端接受后端文件流并下载到本地的方法
60 0
|
10天前
|
存储 缓存 前端开发
前端如何利用indexDB进行数据优化
使用IndexedDB作为浏览器内置的客户端数据库,用于存储大量数据和实现离线支持。它能缓存常用数据,减少服务器请求,提高用户体验。IndexedDB支持数据索引、复杂查询及版本管理,允许离线操作并同步到服务器。但需熟悉其异步API,可借助Dexie.js、localForage等库简化使用。
|
1月前
|
前端开发 JavaScript API
前端框架与库
前端框架与库
41 2
|
1月前
|
前端开发
前端实现生成pdf文件并下载
前端实现生成pdf文件并下载
38 1
|
1月前
|
前端开发
前端实现视频或者图片直链下载
前端实现视频或者图片直链下载
55 0
|
2月前
|
前端开发 Java API
WebSocket vs SSE: 实时数据推送到前端的选择与实现(详细)
WebSocket vs SSE: 实时数据推送到前端的选择与实现(详细)
274 0
|
2月前
|
JavaScript 前端开发 开发者
深入理解前端框架Vue.js的数据响应式原理
本文将深入探讨Vue.js前端框架中的数据响应式原理,包括双向绑定、依赖追踪和虚拟DOM等核心概念。通过详细解析Vue.js内部实现机制,读者能够更好地理解其工作原理,并在实际开发中更灵活地运用。
|
3月前
|
存储 前端开发 JavaScript
前端代码托管:存储库管理综合指南
前端代码托管:存储库管理综合指南
64 0