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

42 lines
1.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.composeFileUrl = exports.getCosBackend = exports.registerCosBackend = void 0;
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;
}
exports.registerCosBackend = registerCosBackend;
function getCosBackend(origin) {
(0, assert_1.assert)(CosBackendDict.hasOwnProperty(origin));
return CosBackendDict[origin];
}
exports.getCosBackend = getCosBackend;
function composeFileUrl(application, extraFile, style) {
const { origin } = extraFile;
const cos = CosBackendDict[origin];
return cos.composeFileUrl(application, extraFile, style);
}
exports.composeFileUrl = composeFileUrl;