import { S3Client } from "@aws-sdk/client-s3"; // We use AWS SDK because it works interchangeably with MinIO, GCS HMAC, and actual AWS S3. // If the user spins up a MinIO service on Coolify later, they literally just change the ENDPOINT URL. const s3Client = new S3Client({ region: process.env.STORAGE_REGION || "northamerica-northeast1", endpoint: process.env.STORAGE_ENDPOINT || "https://storage.googleapis.com", // Works for GCS or MinIO forcePathStyle: process.env.STORAGE_FORCE_PATH_STYLE === "true", // Required for MinIO credentials: { accessKeyId: process.env.STORAGE_ACCESS_KEY_ID || "", secretAccessKey: process.env.STORAGE_SECRET_ACCESS_KEY || "", }, }); export const BUCKET_NAME = process.env.STORAGE_BUCKET || "vibn-uploads"; export default s3Client;