UNPKG

@cake-fxd/cake-cli-presets

Version:

蛋糕英语前端模版项目集合

101 lines (79 loc) 2.52 kB
#! /usr/bin/env node const qiniu = require('qiniu') const fs = require('fs') const path = require('path') // upload prefix path const QINIU_PREFIX = 'paplab/web' // upload bucket name const bucket = 'baicizhan' // qi niu secret mac const accessKey = 'ja7KPhUBStuCp5OND_WGzvS0c8zLwZGhSCJQLpIe' const secretKey = 'ao2GZFuiXC3L01m7QWJWmh-4OHRDRA-E1CR7-dZ6' const mac = new qiniu.auth.digest.Mac(accessKey, secretKey) // all files const FILE_UPLOAD_LIST = [] // success files const SUCCESS_UPLOAD_LIST = [] // fail files const FAIL_UPLOAD_LIST = [] // upload dir let BUILD_DIR = 'dist' // project name let PROJECT_NAME = JSON.parse(fs.readFileSync(`${process.cwd()}/package.json`).toString()).name // upload tasks const PUT_TASKS = [] function scanFiles(pwd = path.resolve(process.cwd(), BUILD_DIR)) { try { const menu = fs.readdirSync(pwd) menu.forEach(value => { const status = fs.statSync(`${pwd}/${value}`) if (!status.isDirectory()) { const current = `${pwd}/${value}`, filename = current.split(`${BUILD_DIR}/`)[1] FILE_UPLOAD_LIST.push(filename) PUT_TASKS.push(put(filename, current)) } else { scanFiles(`${pwd}/${value}`) } }) } catch (e) { console.error(e) } } function put(name, localFile) { return new Promise((reslove, reject) => { const prefix = `${QINIU_PREFIX}/${PROJECT_NAME}/${BUILD_DIR}/` const options = { scope: bucket + ':' + prefix + name, } const putPolicy = new qiniu.rs.PutPolicy(options) const uploadToken = putPolicy.uploadToken(mac) const config = new qiniu.conf.Config() const formUploader = new qiniu.form_up.FormUploader(config) formUploader.putFile(uploadToken, prefix + name, localFile, null, function(respErr, respBody, respInfo) { if (respErr) { reject(respErr) } if (respInfo.statusCode == 200) { SUCCESS_UPLOAD_LIST.push(name) } else { FAIL_UPLOAD_LIST.push(name) } reslove() }) }) } function uploadFiles() { Promise.all(PUT_TASKS) .then(() => { console.log(` 项目 ${PROJECT_NAME} 发布成功!!!`) }) .catch(e => { console.error(e) }) } function startUpload() { scanFiles() uploadFiles() } startUpload()