重构代码时遇到的问题,原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.");
评论区