Files
afilmory/builder.config.default.ts
2025-10-31 21:49:31 +08:00

57 lines
1.3 KiB
TypeScript

import os from 'node:os'
import { defineBuilderConfig, thumbnailStoragePlugin } from '@afilmory/builder'
import { env } from './env.js'
export default defineBuilderConfig(() => ({
repo: {
enable: false,
url: process.env.BUILDER_REPO_URL ?? '',
token: env.GIT_TOKEN,
},
storage: {
provider: 's3',
bucket: env.S3_BUCKET_NAME,
region: env.S3_REGION,
endpoint: env.S3_ENDPOINT,
accessKeyId: env.S3_ACCESS_KEY_ID,
secretAccessKey: env.S3_SECRET_ACCESS_KEY,
prefix: env.S3_PREFIX,
customDomain: env.S3_CUSTOM_DOMAIN,
excludeRegex: env.S3_EXCLUDE_REGEX,
maxFileLimit: 1000,
keepAlive: true,
maxSockets: 64,
connectionTimeoutMs: 5_000,
socketTimeoutMs: 30_000,
requestTimeoutMs: 20_000,
idleTimeoutMs: 10_000,
totalTimeoutMs: 60_000,
retryMode: 'standard',
maxAttempts: 3,
downloadConcurrency: 16,
},
options: {
defaultConcurrency: 10,
enableLivePhotoDetection: true,
showProgress: true,
showDetailedStats: true,
digestSuffixLength: 0,
},
logging: {
verbose: false,
level: 'info',
outputToFile: false,
},
performance: {
worker: {
workerCount: os.cpus().length * 2,
timeout: 30_000,
useClusterMode: true,
workerConcurrency: 2,
},
},
plugins: [thumbnailStoragePlugin()],
}))