UNPKG

oss-uploader

Version:
49 lines (44 loc) 1.36 kB
const file = require('./readFile'); // 读取文件 const ProgressBar = require('./progress-bar'); // 进度条 const pb = new ProgressBar('正在上传至阿里云', 50); // 初始化进度条 let OSS = require('ali-oss'); // OSS SDK let client; let prefix; // 最外层文件夹名 即 oss最外层路径名 // 构造上传函数 function uploadFile(key, localFile) { return client.put(key, localFile).then(function (r1) { // console.log('put success: %j', r1); return client.get(key); }).then(function (r2) { // console.log('get success: %j', r2); return r2; }).catch(function (err) { console.error('error: %j', err); }); } let num = 1; function uploading(files) { if (num <= files.length) { // 更新进度条 pb.render({ completed: num, total: files.length }); // 上传 const key = (prefix ? prefix + '/' : '') + files[num - 1].fileName; const filePath = files[num - 1].filePath; uploadFile(key, filePath).then(() => { num++; setTimeout(() => { uploading(files); }, 200) }).catch(() => { console.error('\nupload fail!') }) } else { console.log('\nupload finish!') } } module.exports = function({uploadPath, ossData, prefixKey}) { const files = file.getFiles(uploadPath); client = new OSS(ossData); prefix = prefixKey; uploading(files); }