2012-03-13 118 views
3

私のアプリケーションでSamba共有からファイルをコピーする必要があります。パスはsmb://host/filename形式です。 nodejでどうすればいいですか? fs.createReadStreamはこれらのパスを開くことを拒否します。私はWindowsと* nixの両方でこれを行う必要があります。node.jsのSamba共有からファイルをコピー

答えて

2

Linuxホスト(「MS SMB」ではなく「samba」と記述したので)を想定すると、まずリモートサーバを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プロトコルでファイルをコピーする必要があります。 –

+0

ああ、あなたは[smbget](http://www.manpagez.com/man/1/smbget/)を使いたいと思う。 –

+0

別の注記:Windows用のsmbユーティリティ上のMSDNには何も見つかりません。したがって、あなたは何をしたいのかをプラットフォームに分ける方法はないと思います(皮肉なことに、SMBの家庭では不可能です)。 –

関連する問題