码迷,mamicode.com
首页 > Web开发 > 详细

将url下载到本地

时间:2021-05-24 17:11:19      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:als   function   file   url   geturl   manage   rsync   rar   exports   

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下载到本地

标签:als   function   file   url   geturl   manage   rsync   rar   exports   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!