feat(api-water): 支持上传水印图片
This commit is contained in:
@@ -28,6 +28,13 @@ const environmentSchema = z.object({
|
||||
WEB_ORIGIN: z.url().default('http://localhost:8100'),
|
||||
DATABASE_URL: z.url(),
|
||||
REDIS_URL: z.url(),
|
||||
OBJECT_STORAGE_ENDPOINT: z.url().default('http://localhost:9000'),
|
||||
OBJECT_STORAGE_BUCKET: z.string().min(3).max(63).default('atlas-assets'),
|
||||
OBJECT_STORAGE_FORCE_PATH_STYLE: z.enum(['true', 'false']).default('true'),
|
||||
OBJECT_STORAGE_ACCESS_KEY: z.string().min(3).optional(),
|
||||
OBJECT_STORAGE_SECRET_KEY: z.string().min(8).optional(),
|
||||
MINIO_ROOT_USER: z.string().min(3).optional(),
|
||||
MINIO_ROOT_PASSWORD: z.string().min(8).optional(),
|
||||
AUTH_JWT_SECRET: z.string().min(32),
|
||||
AUTH_RATE_LIMIT_KEY_SECRET: z.string().min(32),
|
||||
STORE_SECRET_ENCRYPTION_KEY: z.string().min(32),
|
||||
@@ -94,6 +101,9 @@ export type AppConfig = Omit<
|
||||
> & {
|
||||
trustedProxyCidrs: string[];
|
||||
swaggerEnabled: boolean;
|
||||
objectStorageAccessKey: string;
|
||||
objectStorageSecretKey: string;
|
||||
objectStorageForcePathStyle: boolean;
|
||||
};
|
||||
|
||||
function validateEnvironment(
|
||||
@@ -108,6 +118,16 @@ function validateEnvironment(
|
||||
}
|
||||
|
||||
function createAppConfig(environment: Environment): AppConfig {
|
||||
const objectStorageAccessKey =
|
||||
environment.OBJECT_STORAGE_ACCESS_KEY ?? environment.MINIO_ROOT_USER;
|
||||
const objectStorageSecretKey =
|
||||
environment.OBJECT_STORAGE_SECRET_KEY ??
|
||||
environment.MINIO_ROOT_PASSWORD;
|
||||
if (!objectStorageAccessKey || !objectStorageSecretKey) {
|
||||
throw new Error(
|
||||
'OBJECT_STORAGE_ACCESS_KEY and OBJECT_STORAGE_SECRET_KEY are required',
|
||||
);
|
||||
}
|
||||
return {
|
||||
...environment,
|
||||
// 只有显式给出代理网段时才信任转发头,避免客户端伪造来源 IP。
|
||||
@@ -115,6 +135,10 @@ function createAppConfig(environment: Environment): AppConfig {
|
||||
.map((value) => value.trim())
|
||||
.filter(Boolean),
|
||||
swaggerEnabled: environment.SWAGGER_ENABLED === 'true',
|
||||
objectStorageAccessKey,
|
||||
objectStorageSecretKey,
|
||||
objectStorageForcePathStyle:
|
||||
environment.OBJECT_STORAGE_FORCE_PATH_STYLE === 'true',
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user