forked from wangziqi/gongxue-base
feat: add object storage signing providers
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { DEFAULT_DATABASE_URL, DEFAULT_TENANT_SLUG, envList, envNumber, envString, loadDotenv } from '../../../../packages/config/src/index.js';
|
||||
import { DEFAULT_DATABASE_URL, DEFAULT_TENANT_SLUG, envBoolean, envList, envNumber, envString, loadDotenv } from '../../../../packages/config/src/index.js';
|
||||
|
||||
export interface ApiConfig {
|
||||
nodeEnv: string;
|
||||
@@ -13,6 +13,26 @@ export interface ApiConfig {
|
||||
authSmsCooldownSeconds: number;
|
||||
authSessionTtlSeconds: number;
|
||||
platformAdminApiKey: string;
|
||||
storageDefaultProvider: string;
|
||||
storageDefaultBucket: string;
|
||||
storagePublicBaseUrl: string;
|
||||
storageMaxUploadBytes: number;
|
||||
storageAllowedMimePrefixes: string[];
|
||||
storageAllowedMimeTypes: string[];
|
||||
storageRequireTenantPrefix: boolean;
|
||||
aliyunOssRegion: string;
|
||||
aliyunOssEndpoint: string;
|
||||
aliyunOssAccessKeyId: string;
|
||||
aliyunOssAccessKeySecret: string;
|
||||
aliyunOssStsToken: string;
|
||||
aliyunOssInternal: boolean;
|
||||
tencentCosRegion: string;
|
||||
tencentCosAppId: string;
|
||||
tencentCosSecretId: string;
|
||||
tencentCosSecretKey: string;
|
||||
tencentCosSecurityToken: string;
|
||||
supabaseStorageUrl: string;
|
||||
supabaseStorageServiceKey: string;
|
||||
isProduction: boolean;
|
||||
}
|
||||
|
||||
@@ -33,5 +53,43 @@ export const config: ApiConfig = {
|
||||
authSmsCooldownSeconds: envNumber('AUTH_SMS_COOLDOWN_SECONDS', 60),
|
||||
authSessionTtlSeconds: envNumber('AUTH_SESSION_TTL_SECONDS', 60 * 60 * 24 * 7),
|
||||
platformAdminApiKey: envString('PLATFORM_ADMIN_API_KEY', 'local-platform-admin-key'),
|
||||
storageDefaultProvider: envString('STORAGE_DEFAULT_PROVIDER', 'local_dev'),
|
||||
storageDefaultBucket: envString('STORAGE_DEFAULT_BUCKET', 'tenant-assets'),
|
||||
storagePublicBaseUrl: envString('STORAGE_PUBLIC_BASE_URL', ''),
|
||||
storageMaxUploadBytes: envNumber('STORAGE_MAX_UPLOAD_BYTES', 1024 * 1024 * 500),
|
||||
storageAllowedMimePrefixes: envList('STORAGE_ALLOWED_MIME_PREFIXES', 'image/,video/,audio/'),
|
||||
storageAllowedMimeTypes: envList(
|
||||
'STORAGE_ALLOWED_MIME_TYPES',
|
||||
[
|
||||
'application/pdf',
|
||||
'application/json',
|
||||
'application/zip',
|
||||
'application/x-zip-compressed',
|
||||
'application/msword',
|
||||
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
||||
'application/vnd.ms-excel',
|
||||
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||
'application/vnd.ms-powerpoint',
|
||||
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
||||
'application/octet-stream',
|
||||
'text/plain',
|
||||
'text/markdown',
|
||||
'text/csv',
|
||||
].join(','),
|
||||
),
|
||||
storageRequireTenantPrefix: envBoolean('STORAGE_REQUIRE_TENANT_PREFIX', true),
|
||||
aliyunOssRegion: envString('ALIYUN_OSS_REGION', ''),
|
||||
aliyunOssEndpoint: envString('ALIYUN_OSS_ENDPOINT', ''),
|
||||
aliyunOssAccessKeyId: envString('ALIYUN_OSS_ACCESS_KEY_ID', ''),
|
||||
aliyunOssAccessKeySecret: envString('ALIYUN_OSS_ACCESS_KEY_SECRET', ''),
|
||||
aliyunOssStsToken: envString('ALIYUN_OSS_STS_TOKEN', ''),
|
||||
aliyunOssInternal: envBoolean('ALIYUN_OSS_INTERNAL', false),
|
||||
tencentCosRegion: envString('TENCENT_COS_REGION', ''),
|
||||
tencentCosAppId: envString('TENCENT_COS_APP_ID', ''),
|
||||
tencentCosSecretId: envString('TENCENT_COS_SECRET_ID', ''),
|
||||
tencentCosSecretKey: envString('TENCENT_COS_SECRET_KEY', ''),
|
||||
tencentCosSecurityToken: envString('TENCENT_COS_SECURITY_TOKEN', ''),
|
||||
supabaseStorageUrl: envString('SUPABASE_STORAGE_URL', ''),
|
||||
supabaseStorageServiceKey: envString('SUPABASE_STORAGE_SERVICE_KEY', ''),
|
||||
isProduction,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user