从node.js中的Samba共享复制文件

时间:2012-03-13 18:20:36

标签: node.js

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

1 个答案:

答案 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
});