diff --git a/index.js b/index.js index 4222ffa..3c64c72 100644 --- a/index.js +++ b/index.js @@ -1,26 +1,36 @@ require("dotenv").config(); const express = require("express"); -const ejs = require("ejs"); const fileRoutes = require("./routes/file.routes"); const helmet = require("helmet"); +const initializeLocalStorage = require("./engines/local.engine"); +const initializeS3Storage = require("./engines/s3.engine"); const app = express(); const port = process.env.PORT; -const apiKeys = process.env.API_KEYS.split(","); -const allowPublicUploads = process.env.ALLOW_PUBLIC_UPLOADS === "true"; const hosterEmail = process.env.HOSTER_EMAIL; -let totalUploads = 0; -let totalSize = 0; +const localStorage = initializeLocalStorage({}, 10, "./uploads"); +const s3Storage = initializeS3Storage({}, 10, { + accessKeyId: process.env.AWS_ACCESS_KEY_ID, + secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, + endpoint: process.env.AWS_S3_ENDPOINT, + bucketName: process.env.AWS_S3_BUCKET_NAME, +}); app.set("view engine", "ejs"); app.use(fileRoutes); app.use(helmet()); -app.get("/", (req, res) => { +app.get("/", async (req, res) => { + const localStats = localStorage.gatherStatistics(); + const s3Stats = await s3Storage.gatherStatistics(); + + const totalUploads = localStats.totalUploads + s3Stats.totalUploads; + const totalSize = (localStats.totalSize + s3Stats.totalSize) / (1024 * 1024); // Convert to MB + res.render("index", { totalUploads: totalUploads, - totalSize: totalSize.toFixed(2), // Format to 2 decimal places + totalSize: totalSize.toFixed(2), hosterEmail: hosterEmail, }); });