37 lines
1.2 KiB
JavaScript
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), `不存在类型为"${origin}"的CosBackend类`);
|
|
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
|
|
});
|
|
}
|