gpt4 book ai didi

java - java中如何判断谁将文件上传到ftp?

转载 作者:行者123 更新时间:2023-12-01 21:50:46 25 4
gpt4 key购买 nike

我有一个 ftp 客户端,允许用户上传文件。我想确定哪个用户/主机/...上传了该文件。所有人都使用相同的用户名上传文件。唯一的区别是他们使用不同的计算机。

有什么方法可以跟踪上传该文件的用户吗?

public static void uploadFileToServerViaSunFtp(final String source,final JPanel panel, final JTextArea textArea)
{
SwingWorker uploadWorker = new SwingWorker<Boolean,String>()
{
@Override
protected Boolean doInBackground() throws Exception
{
publish("File "+FilenameUtils.getName(source).concat(" starts uploading on ") + String.valueOf(Calendar.getInstance().getTime() + "\n"));
boolean success = false;
FtpClient client;
try
{
client = new FtpClient(server.getFtpServer());
client.login(server.getUsername(), server.getPassword());
client.cd("PC");
client.binary();
int BUFFER_SIZE = 10240;
byte[] buffer = new byte[BUFFER_SIZE];

File f = new File(source);
FileInputStream in = new FileInputStream(source);
// *** If uploading take long time, progress bar will show up ***
InputStream inputStream = new BufferedInputStream(
new ProgressMonitorInputStream(panel, "Uploading " + f.getName(), in));
OutputStream out = client.put(f.getName());
while (true) {
int bytes = inputStream.read(buffer);
if (bytes < 0)
break;
out.write(buffer, 0, bytes);
}
out.close();
in.close();
inputStream.close();
client.closeServer();
success = true;
}
catch (IOException e)
{
OeExceptionDialog.show(e);
}
return success;
}

@Override
protected void done()
{
super.done();
try {
if(get())
textArea.append("File "+FilenameUtils.getName(source).concat(" Uploaded successfully.\n"));
}
};
uploadWorker.execute();
}

最佳答案

存储在 FTP 服务器上的文件具有所有者 (oid) 和组 (gid)。

登录 FTP 服务器的目的是让您进行身份验证和授权。因此,您应该为每个要上传文件的用户设置不同的用户,如“不同的用户名”。

所有用户使用相同的用户名是没有意义的,因为这将导致无法区分。

检查 IP 地址完全是无意义的。我这么说的原因是任何人都可以劫持 IP 地址,只要他们在您的本地网络上。这里几乎没有验证,您不能相信本地 DNS 会为您完成这项工作。

只需使用不同的用户名即可。

关于java - java中如何判断谁将文件上传到ftp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11184592/

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