重构代码时遇到的问题,原Java代码用的SmbFile及相关库,现在要改在js中实现;
1. Windows下可以使用net use命令
net use <local_dir> <remote_dir> <password> /user:<username> net use Z: \\10.3.3.41\test_dir secret /user:admin
2.Linux下使用mount.cifs
mount.cifs <remote_dir> <local_dir> -o username=<username>,password=<password> mount.cifs //10.3.3.41/test_dir /root/drive-o -o username=admin,password=secret
挂载后会存在一个cifsd进程,一直存在,访问绑定的本地目录即可操作远程文件;
需要注意用户名里的域是否需要,即username=domain\\name还是username=name
挂载后,在/etc/mtab文件中会有相应条目
卸载绑定:
umount /root/drive-o
例子:
var fs = require("fs"); var process = require('process'); var existsItems = fs.readFile("/etc/mtab"); if (existsItems.indexOf("/root/drive-o") == -1) { var params = []; params.push('//10.3.3.41/test_dir'); params.push('/root/drive-o'); params.push('-o'); params.push('username=admin,password=secret'); process.exec('mount.cifs', params); } var tmpDir = '/root/drive-o' + "/" + "mydir"; if (!fs.exists(tmpDir)) { fs.mkdir(tmpDir); } var aimPath = tmpDir + "/" + "hello.txt"; fs.writeFile(aimPath, "hello\nworld.");
文章评论