首页 > Web开发 > 详细

将url下载到本地

时间:2021-05-20 22:21:25      阅读:19      评论:0      收藏:0      [点我收藏+]
const axios=require(‘axios‘)
const fs = require(‘fs-extra‘);
const https=require(‘https‘)
const path=require(‘path‘)
function resolve (dir) {
  return path.join(__dirname, ‘..‘, dir)
}

/**将url下载到本地
 * */
class LoadUrlManage{
  constructor (rArr){
    this.rArr=[
      [/\?.*$/,‘‘]
    ]
    if(Array.isArray(rArr)){
      this.rArr=this.rArr.concat(rArr)
    }

    this.ignoreSSL = axios.create({
      responseType: "stream",
      httpsAgent: new https.Agent({
        rejectUnauthorized: false
      })
    });
  }
  async getUrl(url){
    const res=await this.ignoreSSL({
      url:url,
      method: "GET",
    })
    if(res.status===200){
      return res;
    }
    throw res;
  }
  async loadUrl(url){
    let filepath=url;
    this.rArr.forEach(function (arr) {
      filepath=filepath.replace(arr[0],arr[1])
    })
    fs.ensureDirSync(path.dirname(filepath))

    const res=await this.getUrl(url)
    res.data.pipe(fs.createWriteStream(filepath))
    return filepath;
  }
}
module.exports=LoadUrlManage;

  

将url下载到本地

原文:https://www.cnblogs.com/caoke/p/14791021.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!