node遍历下载项目中的云存储图片(如七牛、又拍)

事情原由: PM要求扒下全项目的图,统一作 主题色替换。。。。(原先icon等图片的主题色未作统一)node

我:【一脸问号???】,逗我呢,让我全局一个个图片找过去,而后url复制到chrome上一个一个ctrl + S??? 很差意思,我拒绝!!!chrome

项目中的图片url: https://某某云.某某项目名.com/日期/xxx.pngbash

const fs = require('fs')
const request = require('request')
const targetDirs = ['./pages', './components', './utils'] // 递归的目录

function mapProjectImagesDownLoad(dir) {
  fs.readdir(dir, (err, files) => {
    if (err) {
      console.error(err)
      return false;
    }
    files.map(file => {
      fs.stat(`${dir}/${file}`, (err, stats) => {
        if(err) {
          console.log(err)
          return false
        }
        if(stats.isDirectory()) {
          mapProjectImagesDownLoad(`${dir}/${file}`)
        } 
        if(stats.isFile()) {
          const content = fs.readFileSync(`${dir}/${file}`, 'utf-8');
          // 域名正则 自行替换。
          const regex = /https:\/\/xxx.xxx.com\/.*?[\'\"]/g let result = [] content.match(regex) && result.push(...content.match(regex)) console.log(result) result = result.map(item => { return item.replace(/[\"\';]/g, '')
          })
          if(result.length > 0) {
            result.map((url, index) => {
              const name = url.slice(url.lastIndexOf('/') + 1).replace(/[\"\';]/g, '') request(url).pipe(fs.createWriteStream('/Users/yangfan/测试node图片下载/' + name)); }) } } }) }) }) } targetDirs.map(item => { mapProjectImagesDownLoad(item) }) 复制代码
相关文章
相关标签/搜索