diff --git a/config.ts b/config.ts index d7c4918..942d87e 100644 --- a/config.ts +++ b/config.ts @@ -23,6 +23,7 @@ interface Config { S3_CLIENT_SECRET?: string; S3_ENDPOINT?: string; S3_REGION?: string; + STORAGE: "filesystem" | "s3"; } const config: Config = { CLIENT_ID: "CLIENT_ID", @@ -51,7 +52,14 @@ const config: Config = { "sol", "in", ], + STORAGE: "filesystem", + S3_BUCKET: null, + S3_CLIENT_ID: null, + S3_CLIENT_SECRET: null, + S3_ENDPOINT: null, + S3_REGION: null, }; + for (let conf in process.env) { if ((config as any)[conf] !== undefined) { (config as any)[conf] = process.env[conf]; diff --git a/src/storage.ts b/src/storage.ts index 629bd7c..415b2e5 100644 --- a/src/storage.ts +++ b/src/storage.ts @@ -1,7 +1,8 @@ +import config from "../config"; import FileSystem from "./storage/FileSystem"; import S3Storage from "./storage/S3"; import { StorageBase } from "./types"; -const storage = new FileSystem(); +const storage = config.STORAGE == "s3" ? new S3Storage() : new FileSystem(); export default storage as StorageBase;