2016-07-29 71 views
1

Gibt es eine Möglichkeit, eine Datei auf dem SFTP umzubenennen?Wie kann ich eine Datei auf dem SFTP mit NodeJs umbenennen

Dies ist, was ich für das Herunterladen verwenden, ich bin mit scp2 Knotenmodul:

client.scp({ 
    'host': this.host, 
    'username': this.username, 
    'password': this.password, 
    'path': path 
    },'./', function(err) { 
    if (err){ 
     return callback("File: "+path+" "+err); 
    }else{ 
     return callback(null); 
    } 
    }); 

Vielleicht die alten aus dem SFTP unter einem anderen Namen und entferne ich könnte die Datei herunterladen, laden Sie es. Aber das ist nicht nett.

Ich habe andere Module wie diese durchgesehen: https://www.npmjs.com/package/sftpjs, das einige Umbenennungsfunktion implementiert hat, aber ich kann es nicht funktionieren lassen. Irgendein Vorschlag? Es ist ziemlich offensichtlich, Anwendungsfall und ich konnte nichts finden.

BEARBEITEN: Vijays Antwort ist korrekt. Ich habe es einfach falsch gemacht.

Mein Code:

// Download swush file from SFTP 
    var Client = require('sftpjs'); 
    var c = Client(); 

    c.on('ready', function() { 
     c.list(function (err, list) { 
     if (err) throw err; 

     console.dir(list); 

     c.end(); 
     }); 
    }).connect({ 
     'host': this.host, 
     'username': this.username, 
     'password': this.password, 
    }).rename(path.concat(oldName), path.concat(newName), function(err){ 
      if (err){ 
       console.log("Error when renaming file: "+err) 
      }else{ 
       console.log("Renaming file successful."); 
      } 
    }); 

Arbeitscode:

// Download swush file from SFTP 
    var Client = require('sftpjs'); 
    var c = Client(); 

    c.on('ready', function() { 
     c.rename(path.concat(oldName), path.concat(newName), function(err) {//only one parameter err is available for rename method. 
     if (err){ 
       console.log("Error when renaming file: "+err) 
      }else{ 
       console.log("Renaming file successful."); 
      } 
     }); 
    }).connect({ 
     'host': this.host, 
     'username': this.username, 
     'password': this.password, 
    }); 

Antwort

1

Sie können folgende Zeilen Code verwenden für Datei umbenennen: können Sie https://github.com/mscdex/node-ftp verwenden für den Erfolg bekommen Datei in die Umbenennung.

Sie können auch node-sftpjs-Modul verwenden, um dies auf die gleiche Weise zu erreichen.

+1

Erstaunlich! Vielen Dank. Überprüfen Sie die Bearbeitung bitte, für den Spaß daran;) –

+1

Ok danke. Würde es Ihnen etwas ausmachen, mir zu sagen, warum es ohne neues Keyword funktioniert? –

+1

Bitte lesen Sie http://stackoverflow.com/questions/1646698/what-is-the-new-keyword-in-javascript. Hier ist die beste Lösung dafür. –