侧边栏壁纸
博主头像
三味的小站 博主等级

世界上没有偶然,有的只是必然的结果。

  • 累计撰写 63 篇文章
  • 累计创建 14 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
js

js中写文件到远程共享文件夹(SmbFile|net use|mount.cifs)

三味线
2020-02-09 / 0 评论 / 0 点赞 / 42 阅读 / 0 字

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

0

评论区