smb协议讲解_SMB协议操作共享文件

发布时间:2021-09-24 01:37:36

在 java 开发中,避免不了要对共享文件进行操作,前段时间小编就做了类似的需求,这里记录开发中遇到的坑,一是记录,而是希望有同样需求的小伙伴烧踩一些坑。


在连接共享文件时 ,我们避免不了要输入用户名&密码,但是smb协议可以有两种写法


方法一:


/*


* ? Smb://(用户名):(密码)@(ip)/(共享文件名称)


*/


String path="Smb://dzjz:123@172.16.192.106/unupload/";


SmbFile smbFile=newSmbFile(path);


然后就可以进行后续的验证了。


但是:::: 这种写法会有个坑,其中的@符是连接作用,假如你的密码中有特殊字符(例如:@!#。。等),这样的话你的共享文件一直是链接不上的,那么有没有解决办法呢 ?肯定是有的下面我们来时第二种方法


方法二:


/*


* 还是上面的 用户名密码


*/


String domainip="172.16.192.106";


String userName="dzjz";


String passWord="123";


String fileName="unupload";


String url="smb://172.16.192.106/unupload/" ;


NtlmPasswordAuthentication auth =new NtlmPasswordAuthentication(domainip, username, password);


SmbFile outDirFile =newSmbFile(url, auth);


//或者 SmbFile outDirFile =newSmbFile("smb://"+domainip+"/"+fileName+"/", auth);


这样就可以完美解决了用户名或者密码中存在摊位数字符的问题。


这种写法简单的来说就是优先验证用户信息 ,然后给你个封装好的钥匙,再去打开你想要访问的共享文件,具体原理就不在这里说了 有兴趣的大家可以看下源码。


还有一点,也是比较坑的一点:就是smb协议访问的共享文件是加了同步锁的,当有一个smb协议扎起使用连接着当前的共享文件时,其他的协议是无法连接通过的。(关于这一点大家可以看下源码的具体实现。)







相关资源:smb协议访问带用户名密码的共享文件

相关文档

  • 为什么不使用 cmake 反而使用 Makefile ?
  • Markdown 有序列表 多级列表 序号错乱解决
  • INFO hdfs.DFSClient: Exception in createBlockOutputStream
  • 学会感恩演讲稿5分钟
  • 记一次用Fiddler拦截抓包微信小程序网络请求的踩坑过程
  • yolov2
  • 有趣的做饭作文
  • HDU 5512 Pagodas 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)
  • 莲藕要怎么炒好吃
  • 补肾壮阳中药配方 强精壮阳补肾中药配方
  • 大数据集群搭建---《高可用hadoop篇》 --菜鸟小回
  • 一条必然的路阅读答案
  • 吃苹果的食用好处和相关作用有什么
  • 三岁宝宝最近不爱吃饭怎么办
  • 酒店床尾巾是不是夫妻办事用的 酒店床尾巾的作用是什么
  • 机器人煮面机创始人_秋天的第一杯枸杞拿铁,由机器人冲泡
  • 什么是redis的score?
  • 最小生成树和最短路
  • 给亲戚短信生日祝福语
  • 党员个人学习两学一做心得体会9篇_党员两学一做学习心得体会
  • 'mysqld_safe' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  • 大学生怎么做个人简历
  • 结巴是什么原因造成的
  • 为什么做的馒头粘牙做的馒头粘牙怎么补救
  • 代驾应为避让对方车辆出了事故处理 代驾车辆出事故应由谁承担责任
  • 提高高考数学答题速度的方法
  • 桥接模式(Bridge Pattern)
  • NFS优化笔记
  • 美丽的伞艺术教案
  • redisson简单介绍
  • 猜你喜欢

    电脑版