UNPKG

better-qiniu-cli

Version:

更好的 Node.js 七牛云命令行工具。

42 lines (41 loc) 1.75 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const globby_1 = __importDefault(require("globby")); const path_1 = __importDefault(require("path")); const vtils_1 = require("vtils"); const qiniu_1 = require("qiniu"); exports.upload = async ({ mac, options }) => { return new Promise(async (resolve, reject) => { const { bucket, from, to = '', cwd = process.cwd() } = options; const files = await globby_1.default(vtils_1.castArray(from), { cwd: cwd, onlyFiles: true, }); Promise .all(files.map(file => { return new Promise((resolve, reject) => { const config = new qiniu_1.conf.Config(); const formUploader = new qiniu_1.form_up.FormUploader(config); const putExtra = new qiniu_1.form_up.PutExtra(); const key = `${to}/${file}`.replace(/\/{2,}/g, '/').replace(/^\/+/, ''); const putPolicy = new qiniu_1.rs.PutPolicy({ scope: `${bucket}:${key}`, }); const uploadToken = putPolicy.uploadToken(mac); formUploader.putFile(uploadToken, key, path_1.default.resolve(cwd, file), putExtra, (respErr, respBody, respInfo) => { if (respErr || respInfo.statusCode !== 200) { reject(respErr); } else { resolve(respBody); } }); }); })) .then(resolve) .catch(reject); }); };