2012-03-13 63 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

相關問題