1.创建一个FTP文件服务器
2.在项目中使用FTPClient实现文件的上传下载的功能
3.由于项目是一直运行着的,原来的下载的逻辑不可修改(注:原来下载逻辑是返回文件下载的链接,用户点击就可以下载)
# FTP通过URL进行下载(这样会暴露FTP的用户名和密码,这种方法不可取)
URL的格式=> ftp://user:pwd@url
# 现在想到一个比较好的的方法是使用nginx,在nginx.conf中配置
# $1表示匹配第一个正则表达式的内容
# 如果请求的URL为=> http://127.0.0.1:8088/download/girl.png
# 则自动修改为=> http://127.0.0.1:8088/girl.png
location ~ /download/(.*) {
proxy_pass http://127.0.0.1:8088/$1;
}
# 文件存放的路径
location / {
root /data/ftp/;
}
# 还有如果需要点击链接直接下载(图片不需要预览),可以在struts2配置过滤器
# 在过滤器中判断,如果url中包含"/download/",直接调用FTPClient的下载,response输出文件流
4.以上是个人的一些思路,如果有更好的实现方式,麻烦告知一下~
本文探讨了在项目中使用FTPClient实现文件上传下载功能,避免直接通过URL暴露FTP凭据的安全风险。介绍了一种利用Nginx代理转发的方案,使用户通过HTTP请求访问文件,同时保持原有下载逻辑不变。此外,还讨论了如何配置Struts2过滤器以实现文件的直接下载。
5080

被折叠的 条评论
为什么被折叠?



