From f7658eca22190ebb60c8ad8ec9585db4c70f1913 Mon Sep 17 00:00:00 2001 From: Dinawo Date: Sun, 15 Dec 2024 00:49:12 +0100 Subject: [PATCH] V1.0.0-beta.17 Update 2 --- .drone.yml | 9 +- package-lock.json | 104 ++++++ package.json | 2 + public/assets/Thumbs.db | Bin 0 -> 36352 bytes public/assets/background/Thumbs.db | Bin 0 -> 19968 bytes public/assets/icon.ico | Bin 0 -> 3588150 bytes public/css/dashboard.styles.css | 194 +++++++++- public/js/dashboard.js | 6 - routes/Dpanel/API/Upload.js | 251 ++++--------- routes/attachments.js | 145 +++----- server.js | 3 +- views/doc_cdn-app_api.ejs | 266 ++++++++++++++ views/password-check.ejs | 408 ++++++++++++++++----- views/promote.ejs | 1 + views/upload.ejs | 569 +++++++++++++++++++++++------ 15 files changed, 1457 insertions(+), 501 deletions(-) create mode 100644 public/assets/Thumbs.db create mode 100644 public/assets/background/Thumbs.db create mode 100644 public/assets/icon.ico create mode 100644 views/doc_cdn-app_api.ejs diff --git a/.drone.yml b/.drone.yml index 2f7e8f0..c2130ee 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,5 @@ kind: pipeline name: default - steps: - name: build-node image: node:latest @@ -11,16 +10,14 @@ steps: from_secret: git_password commands: - npm install - - node -v - - + - export VERSION=$(node -e "console.log(require('./package.json').version)") - name: build-docker-image image: plugins/docker settings: repo: swiftlogiclabs/cdn-app-insider - tags: + tags: - latest - - v1.0.0-beta.17 + - v${VERSION} dockerfile: Dockerfile username: from_secret: docker_username diff --git a/package-lock.json b/package-lock.json index 642729d..e15a6bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "bcrypt": "^5.1.1", "chalk": "^4.1.2", "chokidar": "^3.6.0", + "compression": "^1.7.5", "connect-flash": "^0.1.1", "cookie-parser": "^1.4.6", "debug": "^4.3.4", @@ -35,6 +36,7 @@ "jsonwebtoken": "^9.0.2", "mime-types": "^2.1.35", "multer": "^1.4.5-lts.1", + "multiparty": "^4.2.3", "mysql2": "^3.6.3", "ncp": "^2.0.0", "node-cron": "^3.0.3", @@ -1299,6 +1301,60 @@ "node": ">= 6" } }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3349,6 +3405,54 @@ "node": ">= 6.0.0" } }, + "node_modules/multiparty": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.3.tgz", + "integrity": "sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==", + "license": "MIT", + "dependencies": { + "http-errors": "~1.8.1", + "safe-buffer": "5.2.1", + "uid-safe": "2.1.5" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/multiparty/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multiparty/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multiparty/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mv": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", diff --git a/package.json b/package.json index 2be1a0a..f2c801e 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "bcrypt": "^5.1.1", "chalk": "^4.1.2", "chokidar": "^3.6.0", + "compression": "^1.7.5", "connect-flash": "^0.1.1", "cookie-parser": "^1.4.6", "debug": "^4.3.4", @@ -36,6 +37,7 @@ "jsonwebtoken": "^9.0.2", "mime-types": "^2.1.35", "multer": "^1.4.5-lts.1", + "multiparty": "^4.2.3", "mysql2": "^3.6.3", "ncp": "^2.0.0", "node-cron": "^3.0.3", diff --git a/public/assets/Thumbs.db b/public/assets/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..475994aa91101826bf6ef3c0c650ffbca436bee1 GIT binary patch literal 36352 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 z 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 literal 0 HcmV?d00001 diff --git a/public/assets/background/Thumbs.db b/public/assets/background/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..e1df98b117e2e4f3f7c6c33297a8193c6119dd72 GIT binary patch literal 19968 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 z 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 literal 0 HcmV?d00001 diff --git a/public/assets/icon.ico b/public/assets/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..03960f6d8f30d170290616ff36c7c0d776d3fa01 GIT binary patch literal 3588150 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 literal 0 HcmV?d00001 diff --git a/public/css/dashboard.styles.css b/public/css/dashboard.styles.css index ec00f1f..631df81 100644 --- a/public/css/dashboard.styles.css +++ b/public/css/dashboard.styles.css @@ -321,18 +321,32 @@ position: relative !important; .initial-loading { position: fixed; inset: 0; - background: linear-gradient(135deg, - hsla(var(--background), 0.85), - hsla(var(--background), 0.9) - ); - backdrop-filter: blur(10px); - -webkit-backdrop-filter: blur(10px); + background-color: #333; display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 9999; -} + transition: background-color 0.3s ease; + } + .initial-loading > .loader { + border: 4px solid #fff; + border-top-color: transparent; + border-radius: 50%; + width: 40px; + height: 40px; + animation: spin 1s linear infinite; + } + @keyframes spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } + } + .initial-loading > .message { + margin-top: 16px; + font-size: 16px; + font-weight: 600; + color: #fff; + } .success-animation { position: relative; @@ -458,4 +472,170 @@ position: relative !important; to { opacity: 0; } +} + +/* Notifications container */ +.notification-container { + position: fixed; + top: 1rem; + right: 1rem; + z-index: 1100; + display: flex; + flex-direction: column; + gap: 0.5rem; + pointer-events: none; + max-width: 100%; + padding: 1rem; +} + +/* Individual notification */ +.notification { + display: flex; + align-items: center; + background-color: hsl(var(--card)); + border: 1px solid hsl(var(--border)); + border-radius: var(--radius); + padding: 1rem; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + transform: translateX(120%); + opacity: 0; + transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55); + pointer-events: auto; + max-width: 380px; + margin-bottom: 0.5rem; +} + +.notification.show { + transform: translateX(0); + opacity: 1; +} + +/* Icon styles */ +.notification-icon { + display: flex; + align-items: center; + justify-content: center; + width: 2rem; + height: 2rem; + border-radius: 50%; + margin-right: 1rem; + flex-shrink: 0; +} + +/* Notification types */ +.notification.success .notification-icon { + background: rgba(16, 185, 129, 0.1); + color: #10B981; +} + +.notification.error .notification-icon { + background: rgba(239, 68, 68, 0.1); + color: #EF4444; +} + +.notification.warning .notification-icon { + background: rgba(245, 158, 11, 0.1); + color: #F59E0B; +} + +.notification.info .notification-icon { + background: rgba(59, 130, 246, 0.1); + color: #3B82F6; +} + +/* Content styling */ +.notification-content { + flex: 1; +} + +.notification-title { + font-weight: 600; + font-size: 0.925rem; + margin-bottom: 0.25rem; + color: hsl(var(--foreground)); +} + +.notification-message { + font-size: 0.875rem; + color: hsl(var(--muted-foreground)); + line-height: 1.4; +} + +/* Dark mode adjustments */ +.dark .notification { + background-color: hsl(var(--card)); + border-color: hsl(var(--border)); +} + +.dark .notification-title { + color: hsl(var(--foreground)); +} + +.dark .notification-message { + color: hsl(var(--muted-foreground)); +} + +/* Animations */ +@keyframes slideIn { + from { + transform: translateX(120%); + opacity: 0; + } + to { + transform: translateX(0); + opacity: 1; + } +} + +@keyframes slideOut { + from { + transform: translateX(0); + opacity: 1; + } + to { + transform: translateX(120%); + opacity: 0; + } +} + +/* File info styles */ +.file-info { + padding: 0.5rem; + background: rgba(var(--card), 0.5); + border-radius: var(--radius); +} + +.file-info p { + margin-bottom: 0.5rem; +} + +.file-info strong { + color: hsl(var(--foreground)); +} + +/* Metadata info styles */ +.metadata-info { + padding: 0.5rem; + background: rgba(var(--card), 0.5); + border-radius: var(--radius); +} + +.metadata-info p { + margin-bottom: 0.5rem; +} + +.metadata-info strong { + color: hsl(var(--foreground)); +} + +/* Responsive adjustments */ +@media (max-width: 640px) { + .notification-container { + left: 1rem; + right: 1rem; + } + + .notification { + max-width: 100%; + } } \ No newline at end of file diff --git a/public/js/dashboard.js b/public/js/dashboard.js index b300818..75a65b4 100644 --- a/public/js/dashboard.js +++ b/public/js/dashboard.js @@ -715,12 +715,6 @@ function initializeLoadingScreen() { }); } -// Nettoyer le sessionStorage lors de la déconnexion -function handleLogout() { - sessionStorage.removeItem('hasSeenLoadingAnimation'); - // Votre code de déconnexion existant... -} - document.addEventListener('DOMContentLoaded', async function() { try { await initializeLoadingScreen(); diff --git a/routes/Dpanel/API/Upload.js b/routes/Dpanel/API/Upload.js index b8f8841..ca29ef9 100644 --- a/routes/Dpanel/API/Upload.js +++ b/routes/Dpanel/API/Upload.js @@ -1,206 +1,87 @@ const express = require('express'); const fs = require('fs'); const path = require('path'); +const multiparty = require('multiparty'); const router = express.Router(); -const fileUpload = require('express-fileupload'); -const { loggers } = require('winston'); -const ncp = require('ncp'); -const util = require('util'); -const configFile = fs.readFileSync(path.join(__dirname, '../../../data', 'setup.json'), 'utf-8') -const config = JSON.parse(configFile); -const bodyParser = require('body-parser'); -const jwt = require('jsonwebtoken'); -const authMiddleware = require('../../../Middlewares/authMiddleware'); -const { getUserData, getSetupData } = require('../../../Middlewares/watcherMiddleware'); -const { logger, logRequestInfo, ErrorLogger, authLogger } = require('../../../config/logs'); -let setupData = getSetupData(); -let userData = getUserData(); -router.use(bodyParser.json()); +// Limite de taille de fichier à 10 Go +const MAX_FILE_SIZE = 10 * 1024 * 1024 * 1024; // 10 Go -/** - * @swagger - * /dpanel/upload?token={token}: - * post: - * security: - * - bearerAuth: [] - * tags: - * - File - * summary: Upload a file - * description: This route allows you to upload a file. It requires a valid JWT token in the Authorization header. - * requestBody: - * required: true - * content: - * multipart/form-data: - * schema: - * type: object - * properties: - * file: - * type: string - * format: binary - * description: The file to upload - * expiryDate: - * type: string - * format: date-time - * description: The expiry date of the file - * password: - * type: string - * description: The password to protect the file - * parameters: - * - in: header - * name: Authorization - * required: true - * schema: - * type: string - * description: The JWT token of your account to have access - * responses: - * 200: - * description: Success - * content: - * application/json: - * schema: - * type: object - * properties: - * message: - * type: string - * 400: - * description: Bad Request - * content: - * application/json: - * schema: - * type: object - * properties: - * message: - * type: string - * 401: - * description: Unauthorized - * content: - * application/json: - * schema: - * type: object - * properties: - * message: - * type: string - * 500: - * description: Error uploading the file - * content: - * application/json: - * schema: - * type: object - * properties: - * message: - * type: string - * error: - * type: string - */ - -function authenticateToken(req, res, next) { - let token = null; - const authHeader = req.headers['authorization']; - - if (authHeader) { - token = authHeader.split(' ')[1]; - } else if (req.query.token) { - token = req.query.token; - } - - if (token == null) { - if (req.user) { - return next(); - } else { - return res.status(401).json({ message: 'Unauthorized' }); - } - } - - fs.readFile(path.join(__dirname, '../../../data', 'user.jso,'), 'utf8', (err, data) => { - if (err) { - console.error('Error reading user.jso,:', err); - return res.status(401).json({ message: 'Unauthorized' }); - } - - const users = JSON.parse(data); - - const user = users.find(u => u.token === token); - - if (user) { - req.user = user; - next(); - } else { - return res.status(401).json({ message: 'Unauthorized' }); - } - }); +// Crée le dossier temporaire à la racine s'il n'existe pas +const tempDir = path.join(process.cwd(), 'temp'); +if (!fs.existsSync(tempDir)) { + fs.mkdirSync(tempDir, { recursive: true }); } -router.get('/', (req, res) => { - res.status(400).json({ error: 'Bad Request. The request cannot be fulfilled due to bad syntax or missing parameters.' }); -}); - -router.use(fileUpload({ - limits: { fileSize: 15 * 1024 * 1024 * 1024 }, -})); - -router.post('/', authenticateToken, async (req, res) => { - try { - if (!req.files || Object.keys(req.files).length === 0) { - return res.status(400).send('5410 - Download error, please try again later.'); +router.post('/', (req, res) => { + const form = new multiparty.Form({ + uploadDir: tempDir, + maxFilesSize: MAX_FILE_SIZE, + }); + + form.parse(req, (err, fields, files) => { + if (err) { + console.error('Error parsing the file:', err); + return res.status(400).send('Error during the file upload'); + } + + if (!files.file || files.file.length === 0) { + return res.status(400).send('No file uploaded'); } - const file = req.files.file; - const userId = req.user.name; - const Id = req.user.id; - const uploadDir = path.join('cdn-files', userId); - const originalFileName = file.name; - const domain = config.domain || 'mydomain.com'; - let expiryDate = req.body.expiryDate; - let password = req.body.password; + const file = files.file[0]; + // Modifier le chemin pour être relatif à la racine + const userDir = path.join(process.cwd(), 'cdn-files', req.user.name); + + // Utiliser le nom sécurisé fourni par le client + const filename = fields.filename ? fields.filename[0] : file.originalFilename; + const filePath = path.join(userDir, filename); - if (!fs.existsSync(uploadDir)) { - fs.mkdirSync(uploadDir, { recursive: true }); + // Crée le répertoire s'il n'existe pas + if (!fs.existsSync(userDir)) { + fs.mkdirSync(userDir, { recursive: true }); } - file.mv(path.join(uploadDir, originalFileName), async (err) => { - if (err) { - console.error(err); - return res.status(500).send({ message: 'Error downloading file.' }); + // Lecture en chunks pour plus de performances + const readStream = fs.createReadStream(file.path, { highWaterMark: 1024 * 1024 }); + const writeStream = fs.createWriteStream(filePath, { flags: 'a' }); + + readStream.pipe(writeStream); + + readStream.on('end', () => { + // Supprimer le fichier temporaire + fs.unlinkSync(file.path); + + // Vérifier que le nom du fichier suit bien le format attendu + const fileNamePattern = /^\d{8}_[A-Z0-9]{6}_.*$/; + if (!fileNamePattern.test(filename)) { + console.warn('Le fichier uploadé ne suit pas le format de nom sécurisé attendu:', filename); } + + res.status(200).send({ + message: 'File uploaded successfully.', + filename: filename + }); + }); - const fileExtension = path.extname(originalFileName).toLowerCase(); - - const bcrypt = require('bcrypt'); - const saltRounds = 10; - - let hashedPassword = ''; - if (password) { - hashedPassword = bcrypt.hashSync(password, saltRounds); + readStream.on('error', (err) => { + console.error('Error reading the file:', err); + // Nettoyer le fichier temporaire en cas d'erreur + if (fs.existsSync(file.path)) { + fs.unlinkSync(file.path); } + res.status(500).send({ message: 'Error uploading file.' }); + }); - const fileInfo = { - fileName: originalFileName, - expiryDate: expiryDate || '', - password: hashedPassword, - Id: Id, - path: path.join(uploadDir, originalFileName) - }; - - if (expiryDate || password) { - let data = []; - if (fs.existsSync(path.join(__dirname, '../../../data', 'file_info.json'))) { - const existingData = await fs.promises.readFile(path.join(__dirname, '../../../data', 'file_info.json'), 'utf8'); - data = JSON.parse(existingData); - if (!Array.isArray(data)) { - data = []; - } - } - data.push(fileInfo); - await fs.promises.writeFile(path.join(__dirname, '../../../data', 'file_info.json'), JSON.stringify(data, null, 2)); + writeStream.on('error', (err) => { + console.error('Error writing the file:', err); + // Nettoyer le fichier temporaire en cas d'erreur + if (fs.existsSync(file.path)) { + fs.unlinkSync(file.path); } - - res.status(200).send({ message: 'Your file has been successfully uploaded.' }); - }); - } catch (error) { - console.error(error); - return res.status(500).send({ message: 'Error downloading file.' }); - } + res.status(500).send({ message: 'Error uploading file.' }); + }); + }); }); module.exports = router; \ No newline at end of file diff --git a/routes/attachments.js b/routes/attachments.js index 221ecfc..26d7657 100644 --- a/routes/attachments.js +++ b/routes/attachments.js @@ -6,10 +6,13 @@ const fsStandard = require('fs'); const mime = require('mime-types'); const { logger, ErrorLogger } = require('../config/logs'); const bcrypt = require('bcrypt'); -const saltRounds = 10; - +const compression = require('compression'); +const { pipeline } = require('stream/promises'); // Utilisation du pipeline moderne const baseDir = 'cdn-files'; +// Middleware de compression gzip +router.use(compression()); + async function getSamAccountNameFromUserId(userId) { const data = await fs.readFile(path.join(__dirname, '../data', 'user.json'), 'utf8'); const users = JSON.parse(data); @@ -60,27 +63,14 @@ router.get('/:userId/:filename', async (req, res) => { try { const filePath = await findFileInUserDir(userId, filename); - if (!filePath) { return res.render('file-not-found'); } const data = await fs.readFile(path.join(__dirname, '../data', 'file_info.json'), 'utf8'); - let fileInfoArray; - try { - fileInfoArray = JSON.parse(data); - } catch (error) { - console.error('Error parsing file_info.json:', error); - return res.status(500).send('Error reading file info.'); - } - - if (!Array.isArray(fileInfoArray)) { - console.error('fileInfoArray is not an array'); - return res.status(500).send('Invalid file info format.'); - } + const fileInfoArray = JSON.parse(data); const fileInfo = fileInfoArray.find(info => info.fileName === filename && info.Id === userId); - if (fileInfo) { const expiryDate = new Date(fileInfo.expiryDate); const now = new Date(); @@ -95,18 +85,41 @@ router.get('/:userId/:filename', async (req, res) => { } } - const readStream = fsStandard.createReadStream(filePath); - let mimeType = mime.lookup(filePath) || 'application/octet-stream'; + const mimeType = mime.lookup(filePath) || 'application/octet-stream'; + const range = req.headers.range; + const stats = await fs.stat(filePath); + const fileSize = stats.size; - res.setHeader('Content-Type', mimeType); - readStream.pipe(res); + if (range) { + const [start, end] = range.replace(/bytes=/, '').split('-'); + const chunkStart = parseInt(start, 10); + const chunkEnd = end ? parseInt(end, 10) : fileSize - 1; - if (fileInfo) { - req.session.passwordVerified = false; + if (chunkStart >= fileSize || chunkEnd >= fileSize) { + res.setHeader('Content-Range', `bytes */${fileSize}`); + return res.status(416).send('Requested Range Not Satisfiable'); + } + + res.status(206); + res.setHeader('Content-Range', `bytes ${chunkStart}-${chunkEnd}/${fileSize}`); + res.setHeader('Accept-Ranges', 'bytes'); + res.setHeader('Content-Length', chunkEnd - chunkStart + 1); + res.setHeader('Content-Type', mimeType); + + const readStream = fsStandard.createReadStream(filePath, { start: chunkStart, end: chunkEnd }); + await pipeline(readStream, res); // Utilisation de pipeline avec await pour éviter les erreurs + } else { + res.setHeader('Content-Length', fileSize); + res.setHeader('Content-Type', mimeType); + + const readStream = fsStandard.createReadStream(filePath); + await pipeline(readStream, res); } } catch (err) { - ErrorLogger.error('Error reading file:', err); - return res.status(500).send('Error reading file.'); + ErrorLogger.error('Error handling request:', err); + if (!res.headersSent) { + res.status(500).send('Error reading file.'); + } } }); @@ -116,18 +129,7 @@ router.post('/:userId/:filename', async (req, res) => { try { const data = await fs.readFile(path.join(__dirname, '../data', 'file_info.json'), 'utf8'); - let fileInfoArray; - try { - fileInfoArray = JSON.parse(data); - } catch (error) { - console.error('Error parsing file_info.json:', error); - return res.status(500).send('Error reading file info.'); - } - - if (!Array.isArray(fileInfoArray)) { - console.error('fileInfoArray is not an array'); - return res.status(500).send('Invalid file info format.'); - } + const fileInfoArray = JSON.parse(data); const fileInfo = fileInfoArray.find(info => info.fileName === filename && info.Id === userId); @@ -138,81 +140,26 @@ router.post('/:userId/:filename', async (req, res) => { const passwordMatch = await bcrypt.compare(enteredPassword, fileInfo.password); if (passwordMatch) { req.session.passwordVerified = true; + const filePath = await findFileInUserDir(userId, filename); + const mimeType = mime.lookup(filePath) || 'application/octet-stream'; const readStream = fsStandard.createReadStream(filePath); - let mimeType = mime.lookup(filePath) || 'application/octet-stream'; let fileContent = ''; - readStream.on('data', chunk => { + for await (const chunk of readStream) { fileContent += chunk.toString('base64'); - }); + } - readStream.on('end', () => { - res.json({ success: true, fileContent, mimeType }); - }); + res.json({ success: true, fileContent, mimeType }); } else { res.json({ success: false, message: 'Incorrect password' }); } } catch (err) { ErrorLogger.error('Error reading file:', err); - return res.status(500).send('Error reading file.'); + if (!res.headersSent) { + res.status(500).send('Error reading file.'); + } } }); -async function deleteExpiredFiles() { - let data; - try { - data = await fs.readFile(path.join(__dirname, '../data', 'file_info.json'), 'utf8'); - } catch (error) { - console.error('Error reading file_info.json:', error); - return; - } - - let fileInfoArray; - try { - fileInfoArray = JSON.parse(data); - } catch (error) { - console.error('Error parsing file_info.json:', error); - return; - } - - if (!Array.isArray(fileInfoArray)) { - console.error('fileInfoArray is not an array'); - return; - } - - const now = new Date(); - let newFileInfoArray = []; - - for (const fileInfo of fileInfoArray) { - let expiryDate; - if (fileInfo.expiryDate && fileInfo.expiryDate.trim() !== '') { - expiryDate = new Date(fileInfo.expiryDate); - } else { - continue; - } - - if (expiryDate < now) { - try { - const samaccountname = await getSamAccountNameFromUserId(fileInfo.userId); - const userDir = path.join(baseDir, samaccountname); - const filePath = path.join(userDir, fileInfo.fileName); - await fs.unlink(filePath); - } catch (err) { - ErrorLogger.error('Error deleting file:', err); - } - } else { - newFileInfoArray.push(fileInfo); - } - } - - try { - await fs.writeFile(path.join(__dirname, '../data', 'file_info.json'), JSON.stringify(newFileInfoArray, null, 2), 'utf8'); - } catch (err) { - ErrorLogger.error('Error writing to file_info.json:', err); - } -} - -setInterval(deleteExpiredFiles, 24 * 60 * 60 * 1000); - module.exports = router; diff --git a/server.js b/server.js index 1830086..dd9ec57 100644 --- a/server.js +++ b/server.js @@ -17,6 +17,8 @@ const chalk = require('chalk'); require('dotenv').config(); const app = express(); +app.set('trust proxy', 1); + require('./models/fileCreated.js'); let setup; @@ -95,7 +97,6 @@ cron.schedule('0 * * * *', async () => { } } - await fs.promises.writeFile(path.join(__dirname, 'file_info.json'), JSON.stringify(fileInfo, null, 2), 'utf8'); logger.info('Successfully checked file expirations and updated file_info.json'); } catch (err) { ErrorLogger.error(`Failed to check file expirations: ${err}`); diff --git a/views/doc_cdn-app_api.ejs b/views/doc_cdn-app_api.ejs new file mode 100644 index 0000000..5e60ea2 --- /dev/null +++ b/views/doc_cdn-app_api.ejs @@ -0,0 +1,266 @@ + + + + + + Documentation API CDN-APP + + + + +
+

Documentation API CDN-APP

+
+

URL de base : /api/dpanel/

+
+ +

Présentation

+

Cette documentation décrit l'API CDN-APP, qui permet aux utilisateurs de gérer les fichiers et les dossiers au sein de l'application CDN. Elle comprend des points de terminaison pour la création, la suppression, le déplacement et la récupération de fichiers et de dossiers. Toutes les requêtes nécessitent un jeton JWT valide dans l'en-tête d'autorisation.

+ +

Points de terminaison

+ +

Dossier

+ +
+
1. Obtenir les fichiers et dossiers d'un dossier spécifique
+

Point de terminaison : POST /dashboard/getfilefolder/{folderName}?token={token}

+

Description : Cette route vous permet d'obtenir les fichiers et les dossiers d'un dossier spécifique. Elle nécessite un jeton JWT valide dans l'en-tête d'autorisation.

+
+

Paramètres :

+
    +
  • folderName (chemin) : Le nom du dossier
  • +
  • Authorization (en-tête) : Le jeton JWT de votre compte pour avoir accès
  • +
+
+
+

Réponses :

+
    +
  • 200 : Succès
  • +
  • 401 : Non autorisé
  • +
  • 404 : Le dossier spécifié n'existe pas
  • +
  • 500 : Erreur interne du serveur
  • +
+
+
+ +
+
2. Supprimer un dossier spécifique
+

Point de terminaison : POST /dashboard/deletefolder/{folderName}?token={token}

+

Description : Cette route vous permet de supprimer un dossier spécifique. Elle nécessite un jeton JWT valide dans l'en-tête d'autorisation.

+
+

Paramètres :

+
    +
  • folderName (chemin) : Le nom du dossier
  • +
  • Authorization (en-tête) : Le jeton JWT de votre compte pour avoir accès
  • +
+
+
+

Réponses :

+
    +
  • 200 : Le dossier a été supprimé avec succès
  • +
  • 400 : Mauvaise requête
  • +
  • 401 : Non autorisé
  • +
  • 403 : Vous n'avez pas la permission de supprimer ce dossier
  • +
  • 404 : Le dossier spécifié n'existe pas
  • +
  • 500 : Erreur lors de la suppression du dossier
  • +
+
+
+ +
+
3. Créer un nouveau dossier
+

Point de terminaison : POST /dashboard/newfolder?token={token}

+

Description : Cette route vous permet de créer un nouveau dossier. Elle nécessite un jeton JWT valide dans l'en-tête d'autorisation.

+
+

Paramètres :

+
    +
  • Authorization (en-tête) : Le jeton JWT de votre compte pour avoir accès
  • +
+
+
+

Réponses :

+
    +
  • 200 : Succès
  • +
  • 400 : Mauvaise requête
  • +
  • 401 : Non autorisé
  • +
  • 500 : Erreur lors de la création du dossier
  • +
+
+
+ +

Fichier

+ +
+
1. Supprimer un fichier spécifique
+

Point de terminaison : POST /dashboard/deletefile?token={token}

+

Description : Cette route vous permet de supprimer un fichier spécifique. Elle nécessite un jeton JWT valide dans l'en-tête d'autorisation.

+
+

Paramètres :

+
    +
  • Authorization (en-tête) : Le jeton JWT de votre compte pour avoir accès
  • +
+
+
+

Réponses :

+
    +
  • 200 : Succès
  • +
  • 400 : Mauvaise requête
  • +
  • 401 : Non autorisé
  • +
  • 404 : Le fichier spécifié n'existe pas
  • +
  • 500 : Erreur interne du serveur
  • +
+
+
+ +
+
2. Obtenir les informations d'un fichier
+

Point de terminaison : POST /dashboard/getfile?token={token}

+

Description : Cette route vous permet d'obtenir les informations sur un fichier spécifique. Elle nécessite un jeton JWT valide dans l'en-tête d'autorisation.

+
+

Paramètres :

+
    +
  • Authorization (en-tête) : Le jeton JWT de votre compte pour avoir accès
  • +
+
+
+

Réponses :

+
    +
  • 200 : Succès
  • +
  • 400 : Mauvaise requête
  • +
  • 401 : Non autorisé
  • +
  • 404 : Le fichier spécifié n'existe pas ou aucune information n'a été trouvée pour le fichier
  • +
  • 500 : Erreur lors de la lecture du fichier
  • +
+
+
+ +
+
3. Déplacer un fichier vers un dossier différent
+

Point de terminaison : POST /dashboard/movefile?token={token}

+

Description : Cette route vous permet de déplacer un fichier vers un dossier différent. Elle nécessite un jeton JWT valide dans l'en-tête d'autorisation.

+
+

Paramètres :

+
    +
  • Authorization (en-tête) : Le jeton JWT de votre compte pour avoir accès
  • +
+
+
+

Réponses :

+
    +
  • 200 : Succès
  • +
  • 400 : Mauvaise requête
  • +
  • 401 : Non autorisé
  • +
  • 403 : Tentative non autorisée d'accès à un répertoire
  • +
  • 500 : Erreur lors du déplacement du fichier
  • +
+
+
+ +
+
4. Renommer un fichier
+

Point de terminaison : POST /dashboard/rename?token={token}

+

Description : Cette route vous permet de renommer un fichier. Elle nécessite un jeton JWT valide dans l'en-tête d'autorisation.

+
+

Paramètres :

+
    +
  • Authorization (en-tête) : Le jeton JWT de votre compte pour avoir accès
  • +
+
+
+

Réponses :

+
    +
  • 200 : Succès
  • +
  • 400 : Mauvaise requête
  • +
  • 401 : Non autorisé
  • +
  • 500 : Erreur lors du renommage du fichier
  • +
+
+
+ +
+
5. Télécharger un fichier
+

Point de terminaison : POST /dpanel/upload?token={token}

+

Description : Cette route vous permet de télécharger un fichier. Elle nécessite un jeton JWT valide dans l'en-tête d'autorisation.

+
+

Paramètres :

+
    +
  • Authorization (en-tête) : Le jeton JWT de votre compte pour avoir accès
  • +
+
+
+

Réponses :

+
    +
  • 200 : Succès
  • +
  • 400 : Mauvaise requête
  • +
  • 401 : Non autorisé
  • +
  • 500 : Erreur lors du téléchargement du fichier
  • +
+
+
+
+ + + \ No newline at end of file diff --git a/views/password-check.ejs b/views/password-check.ejs index c29da26..623c14e 100644 --- a/views/password-check.ejs +++ b/views/password-check.ejs @@ -1,121 +1,345 @@ - + + + Fichier sécurisé - + + - + + - - - -
-
+ +
+
+

Entrer le mot de passe pour <%= filename %>

-

Le fichier <%= filename %> est protégé. Veuillez entrer le mot de passe pour y accéder.

-
-
- - -
-
- -
-
+
+

Le fichier <%= filename %> est protégé. Veuillez entrer le mot de passe pour y accéder.

+
+
+ + +
+
+ +
+
+
+
+ + diff --git a/views/promote.ejs b/views/promote.ejs index 228e4e5..5bc6517 100644 --- a/views/promote.ejs +++ b/views/promote.ejs @@ -5,6 +5,7 @@ CDN - Myaxrin Labs + + + +
+

Upload de Fichiers

@@ -178,7 +291,9 @@
- +
@@ -191,25 +306,14 @@
-
- -
-
-
0%
-
-
- -
-

Temps estimé : 0 min 0 sec

-
-
- @@ -218,100 +322,355 @@
- - + \ No newline at end of file