我如何使用NodeJs重命名SFTP上的文件

有没有办法重命名SFTP文件?

这是我用来下载的,我正在使用scp2节点模块:

 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); } }); 

也许我可以下载这个文件,用另一个名字上传它,然后从SFTP中删除旧的文件。 但是这并不完整。

我已经通过其他模块,如: https : //www.npmjs.com/package/sftpjs ,有一些重命名function实现,但我不能让它的工作。 任何build议? 这是非常明显的用例,我找不到任何东西。

编辑: Vijay的答案是正确的。 我只是做错了。

我的代码:

 // 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."); } }); 

工作代码:

 // 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, }); 

您可以使用以下几行代码来重命名文件:您可以使用https://github.com/mscdex/node-ftp获取重命名文件的成功。

 var Client = require('ftp'); var c = new Client(); c.on('ready', function() { c.rename('foo.txt', 'foo-new.txt', function(err) {//only one parameter err is available for rename method. if (err) throw err; console.log("rename completed"); }); }); c.connect({ host : host, user : user, password : password }); 

你也可以使用node-sftpjs模块来实现这一点。