2012-03-13 58 views
3

我需要从我的应用程序中的Samba共享复制文件。路径格式为smb://host/filename。我如何在nodejs中执行此操作? fs.createReadStream拒绝打开这些路径。我需要在Windows和* nix上执行此操作。从node.js中的Samba共享复制文件

回答

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

如果我不够具体,我需要通过smb协议复制文件,而无需安装这些共享。 – 2012-03-13 18:55:50

+0

哦,那你想用[smbget](http://www.manpagez.com/man/1/smbget/)。 – 2012-03-13 19:04:37

+0

另一个说明:我在MSDN上找不到任何关于Windows smb实用程序的东西,所以我不认为有跨平台的方式来做你想做的事(具有讽刺意味的是在SMB的主页上不可能)。 – 2012-03-13 19:45:02

相关问题