【问题标题】:node.js how to read file in stream from remote servernode.js如何从远程服务器读取流中的文件
【发布时间】:2018-12-12 21:07:50
【问题描述】:

在 node.js 中,我试图在 filechange 上观看和读取文本文件。为此,我使用下面的代码,它工作得非常好。

var fs = require('fs'),bite_size = 256,readbytes = 0,file;
fs.open('testread.txt', 'r', function(err, fd) {
    file = fd; //readsome(); 

    var func = (function readsome() {
    var stats = fs.fstatSync(file); // yes sometimes async does not make sense!
    if(stats.size<readbytes+1) {        
        setTimeout(readsome, 1000);
    }
    else {
        fs.read(file, new Buffer(bite_size), 0, bite_size, readbytes, function (err, bytecount, buff) {
        console.log(buff.toString('utf-8', 0, bytecount));
        readbytes+=bytecount;
        process.nextTick(readsome);
        });
    }
    })();   
});

但这仅适用于本地文件,现在我需要以相同的方式从远程服务器(可能是 linux 或 windows)读取文本文件。

请帮忙,我怎样才能使用下面的远程服务器登录信息

IP address = "XXX.XXX.XX.XX";, 
username = username, 
password = password, 
filepath = "/root/testread.txt" or "D:\testread.txt" 

并从远程服务器文件路径中的文本文件中读取数据。

【问题讨论】:

  • 要远程访问文件,您可以使用REQUEST MODULE
  • 感谢@J4GD33P 51NGH,“请求”模块看起来很有希望,但我不知道如何使用它,尤其是如何提供服务器 IP。你能否请你给我一些带有IP,用户和密码的工作代码。谢谢
  • 为什么要先登录。只需将文件放在远程服务器的 www 根路径中并从 url 访问它。
  • 好的,我会放文件 /root/testread.txt 但是把远程服务器的IP地址放哪里?这让我很困惑。我正在尝试使用 ,request.get('some.server.com', { 'auth': { 'user': 'username', 'pass': 'password', 'sendImmediately': false } } );

标签: node.js


【解决方案1】:

fs 使用本地文件系统。 要访问远程文件,您需要使用一些网络协议(例如 Windows 的 NTFS 和 linux 的 ssh 或 ftp) 这些协议将文件暴露给远程访问,您无法访问不使用它们的远程主机的文件系统

【讨论】:

  • 感谢@dima,我为 linux 服务器启用了 ssh。如果您向我推荐一些用于从远程服务器读取文件的工作代码/示例,那将是一个很大的帮助。
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 2021-02-23
  • 2012-06-30
  • 2015-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多