【发布时间】:2014-05-17 05:54:54
【问题描述】:
我正在尝试使用 SSH 在客户端浏览器和远程服务器(“云”)之间发送文件。为此,我开发了一个 Node.js 网络服务器作为中间人。对于文件上传,我的 Node 网络服务器接收来自用户的请求并使用 ssh2 模块将其传输到远程服务器。下面是一段sn-p的代码。文件上传完美:
var readStream = fs.createReadStream( "filename.txt" ); // on client's local computer
var writeStream = sftp.createWriteStream( "/path/to/file/filename.txt" ); // on the remote server
writeStream.on('close', function () {
console.log( "- file transferred to cloud" );
sftp.end();
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end("The file has been successfully uploaded to the cloud!");
});
readStream.pipe( writeStream );
所以我尝试使用相同的想法以其他方式传输文件:从远程服务器到客户端,这是我的代码:
var readStream = sftp.createReadStream( "/path/to/file/filename.txt" ); // on remote server
var writeStream = fs.createWriteStream( "path/filename.txt" ); // on the client's local computer server
writeStream.on('close', function () {
console.log( "- file transferred to cloud" );
sftp.end();
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end("The file has been successfully uploaded to the cloud!");
});
readStream.pipe( writeStream );
问题是服务器上的文件确实被读取了,并且在客户端创建了一个文件——但是它没有数据!我不知道为什么数据没有从服务器传输到客户端,但是如果我将文件从客户端传输到服务器,同样的方法也可以。
任何帮助将不胜感激!
【问题讨论】:
标签: javascript node.js ssh