Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
0f365e8e01 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/node_modules
|
||||||
|
*.sqlite
|
10
config/db_settings.json
Normal file
10
config/db_settings.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"settings":["database", "username", "password", {
|
||||||
|
"host": "localhost",
|
||||||
|
"dialect": "sqlite",
|
||||||
|
|
||||||
|
"storage": "sqlite/database.sqlite"
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
15
controller/ftp.js
Normal file
15
controller/ftp.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
const {FtpSrv, FileSystem} = require('ftp-srv');
|
||||||
|
|
||||||
|
class MyFileSystem extends FileSystem {
|
||||||
|
constructor(connection, { root, cwd } = {}) {
|
||||||
|
super(connection, root, cwd);
|
||||||
|
}
|
||||||
|
list(path){
|
||||||
|
return [{name:'test',isDirectory:"false"}]
|
||||||
|
}
|
||||||
|
get(fileName) {
|
||||||
|
console.log(fileName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {FtpSrv,MyFileSystem};
|
36
controller/storage.js
Normal file
36
controller/storage.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
const db_settings = require('../config/db_settings.json');
|
||||||
|
|
||||||
|
|
||||||
|
console.log(global.dir+'/'+db_settings.settings[3].storage);
|
||||||
|
|
||||||
|
const Sequelize = require('sequelize');
|
||||||
|
const sequelize = new Sequelize('', '', '', {
|
||||||
|
dialect: 'sqlite',
|
||||||
|
storage: global.dir+'/'+db_settings.settings[3].storage
|
||||||
|
});
|
||||||
|
|
||||||
|
const Files = sequelize.define('files', {
|
||||||
|
id: {
|
||||||
|
type: Sequelize.INTEGER,
|
||||||
|
primaryKey: true,
|
||||||
|
autoIncrement: true,
|
||||||
|
},
|
||||||
|
title: Sequelize.STRING,
|
||||||
|
filename: Sequelize.STRING
|
||||||
|
});
|
||||||
|
|
||||||
|
const Tags = sequelize.define('tags',{
|
||||||
|
id:{
|
||||||
|
type: Sequelize.INTEGER,
|
||||||
|
primaryKey:true,
|
||||||
|
autoIncrement: true
|
||||||
|
},
|
||||||
|
tag_name:Sequelize.STRING
|
||||||
|
})
|
||||||
|
|
||||||
|
const Files_Tags = sequelize.define('files_tags',{
|
||||||
|
file:Sequelize.INTEGER,
|
||||||
|
tag:Sequelize.INTEGER
|
||||||
|
})
|
||||||
|
|
||||||
|
sequelize.sync()
|
0
files/dummy
Normal file
0
files/dummy
Normal file
29
index.js
Normal file
29
index.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
global.dir = __dirname;
|
||||||
|
|
||||||
|
const ftp = require('./controller/ftp');
|
||||||
|
//const storage = require('./controller/storage');
|
||||||
|
|
||||||
|
var f = new ftp.MyFileSystem();
|
||||||
|
|
||||||
|
const FtpSrv = require('ftp-srv');
|
||||||
|
const ftpServer = new FtpSrv({url:"ftp://127.0.0.1:2221" });
|
||||||
|
|
||||||
|
ftpServer.on('login', ({connection,username,password},resolve, reject) => {
|
||||||
|
if ((username === 'test' || username === 'testdb') && password === 'test' || username === 'anonymous') {
|
||||||
|
if (username === 'testdb') {
|
||||||
|
var root = '/code/data';
|
||||||
|
var cwd = '/';
|
||||||
|
return resolve({root: root, cwd: cwd, fs: new ftp.MyFileSystem(connection, {root: root, cwd: cwd}) });
|
||||||
|
} else {
|
||||||
|
return resolve({ root: '/code/data', cwd: '/' });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
reject('Bad username or password');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ftpServer.listen()
|
||||||
|
.then(() => {
|
||||||
|
|
||||||
|
console.log('HELP')
|
||||||
|
});
|
1468
package-lock.json
generated
Normal file
1468
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
22
package.json
Normal file
22
package.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "wiz",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"start":"node index.js"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.thee.moe/theenoro/wiz.git"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"ftp-srv": "^3.0.5",
|
||||||
|
"mysql2": "^1.6.5",
|
||||||
|
"sequelize": "^4.42.0",
|
||||||
|
"sqlite3": "^4.0.6"
|
||||||
|
}
|
||||||
|
}
|
0
sqlite/dummy
Normal file
0
sqlite/dummy
Normal file
Loading…
Reference in New Issue
Block a user