开发笔记

  • 首页
  • 工具箱
三味线的博客
  1. 首页
  2. JS/PY
  3. 正文

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

2020年02月09日 704点热度 1人点赞 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.");
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: js
最后更新:2020年06月06日

Clownce

不吃咸鱼的猫

点赞
< 上一篇
下一篇 >

文章评论

取消回复

COPYRIGHT © 2020 Clownce. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

蜀ICP备18010095号