UNPKG

wci-build

Version:
74 lines (58 loc) 1.7 kB
const glob = require('glob'); const path = require('path'); const Console = require('console'); const qiniu = require('qiniu'); const mime = require('mime'); const projectDirectory = process.cwd(); import { DEFAULT_OUTPUT, } from './config'; /** * 待抽离 */ const config = { qiniu: { bucket: 'fly-web-cdn', hostname: 'https://cdn.fuliaoyi.com/', AK: 'u1JFo2XoarBECc5tScKwyKtItk6iQFZpbDZQR9hN', SK: 'MfLpuiXPtHwG67H_7jFlGSEngDWV0I7q5fL7oaVM' } } const mac = new qiniu.auth.digest.Mac(config.qiniu.AK, config.qiniu.SK); const putPolicy = new qiniu.rs.PutPolicy({ scope: config.qiniu.bucket, detectMime: 1, }); const uploadToken = putPolicy.uploadToken(mac); const cf = new qiniu.conf.Config(); const formUploader = new qiniu.form_up.FormUploader(cf); const putExtra = new qiniu.form_up.PutExtra(); const uploadToQiniu = (path, key) => { const mimeType = mime.getType(path); const putExtra = { ...putExtra, mimeType, } return new Promise((resolve, reject) => { Console.log('\x1b[33m%s\x1b[0m', `==> 开始上传 ${key} 文件`); formUploader.putFile(uploadToken, key, path, putExtra, function (respErr, respBody, respInfo) { if (respErr) { reject(respErr); } Console.log('\x1b[32m%s\x1b[0m', `==> 上传成功 ${key} 文件`); resolve(respBody); }); }); }; ;(async () => { const files = await glob.sync(path.resolve(projectDirectory, `${DEFAULT_OUTPUT}/*.*`)); if (!files.length) { throw Error('没有打包文件'); } for (let i = 0; i < files.length; i++) { const p = files[i]; const pathname = path.basename(p); await uploadToQiniu(p, pathname); }; })();