文件从服务器传输到客户端Node.js
File transfer from server to client Node.js
我正在尝试使用SSH在客户端浏览器和远程服务器('云')之间发送文件。为此,我开发了一个Node.js web服务器作为中间人。对于文件上传,我的Node web服务器接收来自用户的请求,并使用ssh2模块将其传输到远程服务器。下面是代码片段。文件上传工作完美:
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 );
问题是服务器上的文件确实被读取并且在客户端创建了一个文件-但是它没有数据!我不明白为什么数据没有从服务器传输到客户端,但如果我将文件从客户端传输到服务器,同样的方式可以工作。
任何帮助将非常感激!
试试sftp.fastGet()
和sftp.fastPut()
的方法。它们使用不同的实现,并且速度更快,因为它们是管道读/写。
请查看定义:https://nodejs.org/api/fs.html#fs_fs_createwritestream_path_options
flags <string> See support of file system flags. Default: 'w'.
相关文章:
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 如何通过服务器上的Node从客户端JavaScript上传到谷歌云存储
- 如何将 Node.js 环境变量注入客户端 JavaScript
- 如何在node.js中将数组从服务器端传输到客户端
- Imgur 通过客户端 javascript 上传工作,但不是 node.js.慌乱了
- Node和Socket.io…阻止外部客户端连接
- 如何连接Node.js和Android作为客户端
- node.js表示将外部图像推送到客户端
- Node.js:REST客户端返回它之前的值's已返回
- node.js+MySQL;JSON结果-回调问题&没有响应客户端
- Backbone.js应用程序使用CommonJS结构与node.js和客户端协同工作
- 为什么可以't我得到连接客户端's的ip地址在我的服务器上运行Node.js+Openshift托管的W
- 在node.js和express中,客户端应该如何向服务器发送多达3k的大量数据
- Node.js:在用户连接之前向客户端发送数据
- XMPP客户端未连接-使用Node Bosh服务器
- 如何在客户端Node.js中获取服务器错误消息
- 当发送JSON对象到客户端- Node.js时,响应中未定义的值
- 如何发送数据服务器(JAVA编写)到客户端(Node.js编写)
- 文件从服务器传输到客户端Node.js
- 一个多客户端node.js应用的Mocha-casperjs无头测试