oak-general-business/lib/utils/cos/index.backend.js

43 lines
1.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerCosBackend = registerCosBackend;
exports.getCosBackend = getCosBackend;
exports.composeFileUrlBackend = composeFileUrlBackend;
const tslib_1 = require("tslib");
const assert_1 = require("oak-domain/lib/utils/assert");
const ctyun_backend_1 = tslib_1.__importDefault(require("./ctyun.backend"));
const wechat_backend_1 = tslib_1.__importDefault(require("./wechat.backend"));
const qiniu_backend_1 = tslib_1.__importDefault(require("./qiniu.backend"));
const aliyun_backend_1 = tslib_1.__importDefault(require("./aliyun.backend"));
const tencent_backend_1 = tslib_1.__importDefault(require("./tencent.backend"));
const s3_backend_1 = tslib_1.__importDefault(require("./s3.backend"));
const unknown_backend_1 = tslib_1.__importDefault(require("./unknown.backend"));
const CosBackendDict = {
unknown: new unknown_backend_1.default(),
ctyun: new ctyun_backend_1.default(),
wechat: new wechat_backend_1.default(),
qiniu: new qiniu_backend_1.default(),
aliyun: new aliyun_backend_1.default(),
tencent: new tencent_backend_1.default(),
s3: new s3_backend_1.default(),
};
/**
* 注入一个其它OSS上实现的uploader类
* @param clazz
*/
function registerCosBackend(clazz) {
const instance = new clazz();
CosBackendDict[instance.name] = instance;
}
function getCosBackend(origin) {
(0, assert_1.assert)(CosBackendDict.hasOwnProperty(origin));
return CosBackendDict[origin];
}
async function composeFileUrlBackend(application, extraFile, context, style) {
const { origin } = extraFile;
const cos = CosBackendDict[origin];
return cos.composeFileUrlBackend({
application, extraFile, context, style
});
}