surgio
Version:
查看完整使用文档,前往 [surgio.royli.dev](https://surgio.royli.dev)。
99 lines • 8.14 kB
JavaScript
;
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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