webadmin系统设置

This commit is contained in:
2026-07-12 22:52:40 +08:00
parent 236a2a87a5
commit 1bd152073a
41 changed files with 1413 additions and 151 deletions
@@ -1,4 +1,4 @@
import { Injectable } from '@nestjs/common';
import { Injectable, InternalServerErrorException } from '@nestjs/common';
import type {
IOssProvider,
OssPutObjectInput,
@@ -30,10 +30,15 @@ export class OssAliyunProvider implements IOssProvider {
return !!(this.accessKeyId && this.accessKeySecret && this.bucket);
}
private assertConfigured() {
if (this.isEnabled()) return;
throw new InternalServerErrorException(
'OSS 未配置:请设置 OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET、OSS_BUCKET(及 OSS_REGION',
);
}
private getClient() {
if (!this.isEnabled()) {
throw new Error('OSS credentials are not configured');
}
this.assertConfigured();
if (!this.client) {
this.client = createAliyunOssClient({
accessKeyId: this.accessKeyId,
@@ -49,14 +54,8 @@ export class OssAliyunProvider implements IOssProvider {
buildPublicUrl(ossKey: string) {
const key = ossKey.replace(/^\//, '');
const client = this.isEnabled() ? this.getClient() : null;
if (client) {
return client.generateObjectUrl(key, this.cdnBase || undefined);
}
if (this.cdnBase) {
return `${this.cdnBase.replace(/\/$/, '')}/${key}`;
}
return `${resolveOssUploadHost(this.bucket, this.region)}/${key}`;
const client = this.getClient();
return client.generateObjectUrl(key, this.cdnBase || undefined);
}
getUploadToken(dto: OssUploadTokenInput): OssUploadTokenResult {