feat: private certificates/documents buckets with SeaweedFS support
Add Document CRUD, temp→bucket commit flow, SeaweedFS env aliases, and default temp bucket name to temp.
This commit is contained in:
+42
-8
@@ -29,15 +29,49 @@ const config = {
|
||||
DEFAULT_LANG: process.env.DEFAULT_LANG || 'en',
|
||||
UPLOAD_PATH: process.env.UPLOAD_PATH || 'uploads',
|
||||
|
||||
// S3 / MinIO Object Storage Settings
|
||||
S3_ENDPOINT: process.env.S3_ENDPOINT || 'http://localhost:9000',
|
||||
S3_REGION: process.env.S3_REGION || 'us-east-1',
|
||||
S3_ACCESS_KEY: process.env.S3_ACCESS_KEY || 'minioadmin',
|
||||
S3_SECRET_KEY: process.env.S3_SECRET_KEY || 'minioadmin',
|
||||
S3_TEMP_BUCKET: process.env.S3_TEMP_BUCKET || 'gameno-temp',
|
||||
S3_STORAGE_BUCKET: process.env.S3_STORAGE_BUCKET || 'gameno-storage',
|
||||
S3_FORCE_PATH_STYLE: process.env.S3_FORCE_PATH_STYLE === 'false' ? false : true,
|
||||
// S3-compatible storage (MinIO locally, SeaweedFS in production)
|
||||
// Accepts S3_* directly, or SeaweedFS/AWS service env aliases from the host platform.
|
||||
S3_ENDPOINT:
|
||||
process.env.S3_ENDPOINT
|
||||
|| process.env.SERVICE_URL_S3
|
||||
|| process.env.SERVICE_URL_S3_8333
|
||||
|| 'http://localhost:9000',
|
||||
S3_REGION: process.env.S3_REGION || process.env.AWS_REGION || 'us-east-1',
|
||||
S3_ACCESS_KEY:
|
||||
process.env.S3_ACCESS_KEY
|
||||
|| process.env.AWS_ACCESS_KEY_ID
|
||||
|| process.env.SERVICE_USER_S3
|
||||
|| 'minioadmin',
|
||||
S3_SECRET_KEY:
|
||||
process.env.S3_SECRET_KEY
|
||||
|| process.env.AWS_SECRET_ACCESS_KEY
|
||||
|| process.env.SERVICE_PASSWORD_S3
|
||||
|| 'minioadmin',
|
||||
S3_TEMP_BUCKET: process.env.S3_TEMP_BUCKET || 'temp',
|
||||
// Legacy single storage bucket (kept as fallback)
|
||||
S3_STORAGE_BUCKET: process.env.S3_STORAGE_BUCKET || process.env.S3_CERTIFICATES_BUCKET || 'certificates',
|
||||
// Dedicated private buckets
|
||||
S3_CERTIFICATES_BUCKET: process.env.S3_CERTIFICATES_BUCKET || 'certificates',
|
||||
S3_DOCUMENTS_BUCKET: process.env.S3_DOCUMENTS_BUCKET || 'documents',
|
||||
S3_FORCE_PATH_STYLE: parseBool(
|
||||
process.env.S3_FORCE_PATH_STYLE,
|
||||
true // required for SeaweedFS / MinIO path-style
|
||||
),
|
||||
SIGNED_URL_EXPIRES_IN: parseInt(process.env.SIGNED_URL_EXPIRES_IN, 10) || 900, // 15 minutes default
|
||||
// Public base URL for public buckets only (private buckets leave fileUrl empty)
|
||||
S3_PUBLIC_BASE_URL:
|
||||
process.env.S3_PUBLIC_BASE_URL
|
||||
|| process.env.SERVICE_URL_S3
|
||||
|| '',
|
||||
S3_CERTIFICATES_PUBLIC: parseBool(process.env.S3_CERTIFICATES_PUBLIC, false),
|
||||
S3_DOCUMENTS_PUBLIC: parseBool(process.env.S3_DOCUMENTS_PUBLIC, false),
|
||||
// SeaweedFS admin console (optional; not used by the S3 SDK client)
|
||||
SEAWEED_ADMIN_URL:
|
||||
process.env.SERVICE_URL_ADMIN_23646
|
||||
|| process.env.SERVICE_URL_ADMIN
|
||||
|| '',
|
||||
SEAWEED_USER_ADMIN: process.env.SEAWEED_USER_ADMIN || process.env.SERVICE_USER_ADMIN || '',
|
||||
SEAWEED_PASSWORD_ADMIN: process.env.SEAWEED_PASSWORD_ADMIN || process.env.SERVICE_PASSWORD_ADMIN || '',
|
||||
|
||||
// SMTP Email Settings
|
||||
SMTP_HOST: process.env.SMTP_HOST || 'smtp.mailtrap.io',
|
||||
|
||||
Reference in New Issue
Block a user