使用smb协议获取远程服务器的文件(共享文件)
使⽤smb协议获取远程服务器的⽂件(共享⽂件)
最近⽤户需要需要程序定时去读取另外⼀台机器的EXCEL⽂件,我出了个解决⽅案:因为是windows服务器,所以我在本地映射了⼀个盘Z然后就想读取本机的⽂件那样读取,结果临到上⽣产的时候发现只要服务器休眠后映射就会被断开,导致读取失败,不到⽂件。
后来多⽅google之后,发现SMB协议 ,屌丝程序员的福⾳啊。
JAVA中的类库:jcifs该协议做了很好的⽀持:
不说了,贴代码:机器码
教师节手抄报的内容
/**
* 以Smb协议读取共享⽂件下⽂件
* @param fileName
* @return
* @throws Exception
gl小说
*/
private InputStream getSmbRemoteFile(String fileName) throws Exception {
String hostIp = Instance().getValue("dps_host_ip");
String domain = Instance().getValue("dps_domain");
String userName = Instance().getValue("dps_username");
String pwd = Instance().getValue("dps_password");
UniAddress dc = ByName(hostIp);
门锁十大品牌
NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication(
domain, userName, pwd);
SmbSession.logon(dc, authentication);
String fileUrl = "smb://" + hostIp + "/mfgcom/Commons/DPS/" + fileName;
logger.info(String.format("开始从远程地址:%s以SMb协议读取数据", fileUrl));
SmbFile remoteFile = new SmbFile(fileUrl, authentication);
// t(); // 尝试连接
logger.info("remoteFile path:" + Path());焦糖玛奇朵的做法
InputStream in = new BufferedInputStream(new SmbFileInputStream(
remoteFile));
if (null == in) {
爱心怎么折(String.format("远程(%s)读取数据失败!", fileUrl));
}
return in;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。