Guest User

Untitled

a guest
Nov 22nd, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. const Transform = require('stream').Transform;
  2. const util = require('util');
  3.  
  4. const transformComponent = module.exports = function(options) {
  5. if (!(this instanceof transformComponent))
  6. return new Parser(options);
  7. Transform.call(this, options);
  8. };
  9.  
  10. util.inherits(transformComponent, Transform);
  11.  
  12. transformComponent.prototype._transform = function(data, encoding, callback) {
  13. this.push(data);
  14. callback();
  15. };
  16.  
  17. transformComponent.prototype._flush = function(callback) {
  18. callback();
  19. };
  20.  
  21. const Client = require('ftp');
  22. var ftp = new Client();
  23.  
  24. var ftpComponent = function(host){
  25. this.host = host;
  26. this.port = 21;
  27. this.user = "";
  28. this.password = "";
  29. };
  30.  
  31. function connectionProperties(){
  32. let properties ={
  33. host: this.host,
  34. port: this.port
  35. };
  36. if(this.user && this.user!== "")
  37. properties.user = this.user;
  38. if(this.password && this.password !== "")
  39. properties.password = this.password;
  40.  
  41. return properties;
  42. }
  43.  
  44. function download(filepath, target){
  45. ftp.on('ready', function () {
  46. ftp.get(filepath, function(err, stream) {
  47. if (err) throw err;
  48. stream.once('close', function() { ftp.end(); });
  49. stream.pipe(target);
  50. });
  51. });
  52.  
  53. ftp.connect(this.connectionProperties());
  54. }
  55.  
  56. function upload(source, filename){
  57. ftp.on('ready', function () {
  58. // Upload files to the server:
  59. ftp.put(source, filename, function(err) {
  60. if (err) throw err;
  61. ftp.end();
  62. });
  63. });
  64.  
  65. ftp.connect(this.connectionProperties());
  66. }
  67.  
  68. ftpComponent.prototype = {
  69. connectionProperties: connectionProperties,
  70. pull : download,
  71. push : upload
  72. }
  73.  
  74. module.exports = ftpComponent;
  75.  
  76. const ftp = require('./node_component/ftpComponent.js');
  77. const transform = require('./node_component/transformComponent.js');
  78.  
  79. var ftpSourceObject = new ftp('host A');
  80. var ftpTargetObject = new ftp('host B');
  81.  
  82. ftpSourceObject.user = usernameA;
  83. ftpSourceObject.password = passwordA;
  84.  
  85. ftpTargetObject.user = usernameB;
  86. ftpTargetObject.password = passwordB;
  87.  
  88. var temp = new transform();
  89. ftpSourceObject.pull('file.txt', temp);
  90. ftpTargetObject.push(temp, 'file-cp.txt');
Add Comment
Please, Sign In to add comment