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

dev*_*com 5 node.js

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

小智 4

假设一台 Linux 主机(因为您提到了“samba”而不是“MS SMB”),您首先需要使用smbmount. 这篇论坛帖子概述了如何执行此操作,然后您只需阅读这些文件,就好像它们位于您的服务器本地一样。

或者,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
});
Run Code Online (Sandbox Code Playgroud)