Files
freeplanet_serverside/src/server/ftp/FTPClient.js
Paolo Arena 9d0e6136ac - Dynamic Pages (MyPage)
- Uploading files to the Server FTP.
2019-12-07 00:20:06 +01:00

53 lines
1.3 KiB
JavaScript

'use strict';
const ftp = require('basic-ftp');
// const fs = require('fs');
class FTPClient {
constructor(host = 'localhost', port = 21, username = 'anonymous', password = 'guest', secure = false, secureOptions = '') {
this.client = new ftp.Client();
// this.client.ftp.verbose = true;
this.settings = {
host: host,
port: port,
user: username,
password: password,
secure: secure,
secureOptions: secureOptions
};
}
async upload(sourcePath, remotePath, permissions) {
let self = this;
try {
let access = await self.client.access(self.settings);
let upload = await self.client.uploadFrom(sourcePath, remotePath);
// let permissions = await self.changePermissions(permissions.toString(), remotePath);
self.client.close();
return true;
} catch (err) {
console.log('upload ERR: ', err);
self.client.close();
return false;
}
}
async createDir(miadir) {
let access = await this.client.access(this.settings);
await this.client.ensureDir(miadir);
}
close() {
this.client.close();
}
changePermissions(perms, filepath) {
let cmd = 'SITE CHMOD ' + perms + ' ' + filepath;
return this.client.send(cmd, false);
}
}
module.exports = FTPClient;