🚧 file storage

This commit is contained in:
Flam3rboy 2021-05-27 20:01:50 +02:00
parent 293894a4f9
commit 4e69d83457
6 changed files with 21 additions and 14 deletions

View File

@ -1 +1,2 @@
STORAGE_LOCATION=files/ STORAGE_LOCATION=files/
PORT=3003

14
package-lock.json generated
View File

@ -26,7 +26,7 @@
"devDependencies": { "devDependencies": {
"@types/body-parser": "^1.19.0", "@types/body-parser": "^1.19.0",
"@types/btoa": "^1.2.3", "@types/btoa": "^1.2.3",
"@types/express": "^4.17.11", "@types/express": "^4.17.12",
"@types/multer": "^1.4.5", "@types/multer": "^1.4.5",
"@types/node": "^14.17.0", "@types/node": "^14.17.0",
"@types/node-fetch": "^2.5.7", "@types/node-fetch": "^2.5.7",
@ -90,9 +90,9 @@
} }
}, },
"node_modules/@types/express": { "node_modules/@types/express": {
"version": "4.17.11", "version": "4.17.12",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz",
"integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/body-parser": "*", "@types/body-parser": "*",
@ -1585,9 +1585,9 @@
} }
}, },
"@types/express": { "@types/express": {
"version": "4.17.11", "version": "4.17.12",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz",
"integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/body-parser": "*", "@types/body-parser": "*",

View File

@ -37,7 +37,7 @@
"devDependencies": { "devDependencies": {
"@types/body-parser": "^1.19.0", "@types/body-parser": "^1.19.0",
"@types/btoa": "^1.2.3", "@types/btoa": "^1.2.3",
"@types/express": "^4.17.11", "@types/express": "^4.17.12",
"@types/multer": "^1.4.5", "@types/multer": "^1.4.5",
"@types/node": "^14.17.0", "@types/node": "^14.17.0",
"@types/node-fetch": "^2.5.7", "@types/node-fetch": "^2.5.7",

View File

@ -8,7 +8,7 @@ if (process.env.STORAGE_LOCATION) {
} }
} else process.env.STORAGE_LOCATION = __dirname + "/../files/"; } else process.env.STORAGE_LOCATION = __dirname + "/../files/";
const server = new CDNServer(); const server = new CDNServer({ port: Number(process.env.PORT) || 3003 });
server server
.start() .start()
.then(() => { .then(() => {

View File

@ -1,7 +1,13 @@
import { Storage } from "./Storage"; import { Storage } from "./Storage";
import fs from "fs/promises";
import { join } from "path";
export class FileStorage implements Storage { export class FileStorage implements Storage {
async get(path: string, prefix?: string) {} async get(path: string) {
return fs.readFile(join(process.env.STORAGE_LOCATION || "", path), { encoding: "binary" });
}
async set(path: string, value: any) {} async set(path: string, value: any) {
return fs.writeFile(join(process.env.STORAGE_LOCATION || "", path), value, { encoding: "binary" });
}
} }

View File

@ -1,8 +1,8 @@
import { FileStorage } from "./FileStorage"; import { FileStorage } from "./FileStorage";
export interface Storage { export interface Storage {
set(hash: string, data: any, prefix?: string): Promise<void>; set(path: string, data: any): Promise<void>;
get(hash: string, prefix?: string): Promise<any>; get(path: string): Promise<any>;
} }
var storage: Storage; var storage: Storage;