我需要在我的应用程序中复制Samba共享中的文件。路径采用smb://host/filename
格式。我如何在nodejs中做到这一点? fs.createReadStream
拒绝打开这些路径。我需要在Windows和* nix上执行此操作。
答案 0 :(得分:2)
假设Linux主机(因为您提到“samba”而不是“MS SMB”),您首先需要使用smbmount
安装远程服务器。 This forum post has an overview of how to do that,然后您只需将文件读取为服务器的本地文件即可。
或者,smbget
允许您在不挂载远程主机的情况下获取单个文件,但对于大量文件请求效率不高。
另一个编辑;一些示例代码:
var remoteFile = require('child_process').spawn('smbget', ['--stdout', 'smb://host/filename']);
remoteFile.stdout.on('data', function(chunk) {
//handle chunk of data
});
remoteFile.on('exit', function() {
//file loaded completely, continue doing stuff
});