gpt4 book ai didi

java - JCIFS - 通过 SMB 传输文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:24 25 4
gpt4 key购买 nike

我正在尝试使用 jcifs SMB 将一些文件从存储目录移动到远程服务器“BOB”。我需要使用 jcifs,因为移动是通过 Android 应用程序进行的,I.E.我正在将照片从应用程序移动到远程服务器。为了验证用户身份,我的公司使用 Active Directory。有一段时间,Active Directory 与照片所在的服务器是同一台服务器,一切都很好。不幸的是,他们不得不将存储 Active Directory 的服务器更改为“RAINY”,而不是存储照片的服务器。因此,我需要将这些照片发送到“BOB”,但使用“RAINY”作为域 Controller 登录。尽管我尽了最大努力,但我还是收到错误“没有可用的登录服务器来服务登录请求”,当它到达“SMBFileOutputStream”代码行时,它会返回此错误。

// Logon first.
UniAddress domainController = UniAddress.getByName("10.1.0.7");
SmbSession.logon(domainController, auth);

File moveMe = pics[k];
String cakeFolder = cupCakes[i].getName();
String transFolder = transfers[j].getName();
String destination = "smb://10.1.0.54/shared/Photos/Cupcakes/" + cakeFolder + "/" + transFolder + "/" + moveMe.getName();

smbDest = new SmbFile(destination, auth);
SmbFileOutputStream out = new SmbFileOutputStream(smbDest);
FileInputStream fis = new FileInputStream(moveMe);
out.write(IOUtils.toByteArray(fis));
out.close();

最佳答案

您从哪里获取“SmbSession.logon()”?

如果您正在谈论进行 krb5 样式登录,JCIFS 不支持 Kerberos。无论如何,您都无法执行此操作,因为 Android 未加入域(或者 Android 可以,我不知道)。

无论如何,您必须仅使用纯文本凭据。更具体地说,使用您的域/用户名/密码创建一个 NtlmPasswordAuthentication 对象并将其传递给 SmbFile(或者可能 SmbFileOutputStream 会更好 - 请参阅示例/Put.java)。

关于java - JCIFS - 通过 SMB 传输文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46079711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com