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

37 lines
1.2 KiB
JavaScript

import { assert } from 'oak-domain/lib/utils/assert';
import CTYunBackend from './ctyun.backend';
import WechatBackend from './wechat.backend';
import QiniuBackend from './qiniu.backend';
import AliyunBackend from './aliyun.backend';
import TencentBackend from './tencent.backend';
import S3Backend from './s3.backend';
import UnknownBackend from './unknown.backend';
const CosBackendDict = {
unknown: new UnknownBackend(),
ctyun: new CTYunBackend(),
wechat: new WechatBackend(),
qiniu: new QiniuBackend(),
aliyun: new AliyunBackend(),
tencent: new TencentBackend(),
s3: new S3Backend(),
};
/**
* 注入一个其它OSS上实现的uploader类
* @param clazz
*/
export function registerCosBackend(clazz) {
const instance = new clazz();
CosBackendDict[instance.name] = instance;
}
export function getCosBackend(origin) {
assert(CosBackendDict.hasOwnProperty(origin));
return CosBackendDict[origin];
}
export async function composeFileUrlBackend(application, extraFile, context, style) {
const { origin } = extraFile;
const cos = CosBackendDict[origin];
return cos.composeFileUrlBackend({
application, extraFile, context, style
});
}