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) }) 複製代碼
相關文章
相關標籤/搜索