UNPKG

surgio

Version:

查看完整使用文档,前往 [surgio.royli.dev](https://surgio.royli.dev)。

99 lines 8.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; // istanbul ignore file const ali_oss_1 = __importDefault(require("ali-oss")); const assert_1 = __importDefault(require("assert")); const common_bin_1 = __importDefault(require("common-bin")); const fs_1 = __importDefault(require("fs")); const node_dir_1 = __importDefault(require("node-dir")); const ora_1 = __importDefault(require("ora")); const path_1 = __importDefault(require("path")); const utils_1 = require("../utils"); class GenerateCommand extends common_bin_1.default { constructor(rawArgv) { super(rawArgv); this.usage = 'Usage: surgio upload'; this.spinner = ora_1.default(); this.options = { output: { type: 'string', alias: 'o', description: 'folder for saving files', }, config: { alias: 'c', default: './surgio.conf.js', }, }; } async run(ctx) { const config = utils_1.loadConfig(ctx.cwd, ctx.argv.config, Object.assign({}, (ctx.argv.output ? { output: path_1.default.resolve(ctx.cwd, ctx.argv.output), } : null))); const ossConfig = { region: config.upload.region, bucket: config.upload.bucket, accessKeyId: ctx.env.OSS_ACCESS_KEY_ID || config.upload.accessKeyId, accessKeySecret: ctx.env.OSS_ACCESS_KEY_SECRET || config.upload.accessKeySecret, }; assert_1.default(ossConfig.bucket); assert_1.default(ossConfig.accessKeyId); assert_1.default(ossConfig.accessKeySecret); const client = new ali_oss_1.default(Object.assign({ secure: true }, ossConfig)); const { prefix } = config.upload; const fileList = await node_dir_1.default.promiseFiles(config.output); const files = fileList.map(filePath => ({ fileName: filePath.split('/').slice(-1)[0], filePath, })); const fileNameList = files.map(file => file.fileName); const upload = () => { return Promise.all(files.map(file => { const { fileName, filePath } = file; const objectName = `${prefix}${fileName}`; const readStream = fs_1.default.createReadStream(filePath); return client.put(objectName, readStream, { mime: 'text/plain; charset=utf-8', headers: { 'Cache-Control': 'private, no-cache, no-store', }, }); })); }; const deleteUnwanted = async () => { const list = await client.list({ prefix, delimiter: '/', }); const deleteList = []; for (const key in list.objects) { if (list.objects.hasOwnProperty(key)) { const object = list.objects[key]; const objectName = object.name.replace(prefix, ''); const isExist = fileNameList.indexOf(objectName) > -1; if (objectName && !isExist) { deleteList.push(object.name); } } } if (deleteList.length) { await client.deleteMulti(deleteList); } }; this.spinner.start('Start uploading to Aliyun OSS'); await upload(); await deleteUnwanted(); this.spinner.succeed(); } get description() { return 'Upload configurations to Aliyun OSS'; } errorHandler(err) { this.spinner.fail(); super.errorHandler(err); } } module.exports = GenerateCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2NvbW1hbmQvdXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1QkFBdUI7QUFDdkIsc0RBQTBCO0FBQzFCLG9EQUE0QjtBQUM1Qiw0REFBaUM7QUFDakMsNENBQW9CO0FBQ3BCLHdEQUEyQjtBQUMzQiw4Q0FBK0I7QUFDL0IsZ0RBQXdCO0FBRXhCLG9DQUFzQztBQUV0QyxNQUFNLGVBQWdCLFNBQVEsb0JBQU87SUFJbkMsWUFBWSxPQUFPO1FBQ2pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsc0JBQXNCLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxHQUFHO2dCQUNWLFdBQVcsRUFBRSx5QkFBeUI7YUFDdkM7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsT0FBTyxFQUFFLGtCQUFrQjthQUM1QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLGtCQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sb0JBQzdDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxjQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDL0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ1QsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFHO1lBQ2hCLE1BQU0s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