分布式文件问题以及修改意见

This commit is contained in:
20932067@zju.edu.cn 2021-05-13 20:19:27 +08:00
parent 08436a878a
commit 9551520ee3
5 changed files with 46 additions and 15 deletions

View File

@ -3,6 +3,7 @@ package com.hchyun.web.controller.common;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.hchyun.system.utils.FtpUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -42,7 +43,7 @@ public class CommonController {
// if (!FileUtils.isValidFilename(fileName)) { // if (!FileUtils.isValidFilename(fileName)) {
// throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 " , fileName)); // throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 " , fileName));
// } // }
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("."));
String filePath = HchYunConfig.getDownloadPath() + fileName; String filePath = HchYunConfig.getDownloadPath() + fileName;
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
@ -68,11 +69,11 @@ public class CommonController {
String filePath = HchYunConfig.getUploadPath(); String filePath = HchYunConfig.getUploadPath();
// 上传并返回新文件名称 // 上传并返回新文件名称
String fileName = FileUploadUtils.upload(filePath, file); String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName; String url = FtpUtils.getApiurl() + fileName;
// String url = serverConfig.getUrl() + fileName;
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("fileName", fileName); ajax.put("fileName", fileName);
ajax.put("url", url); ajax.put("url", url);
ajax.put("addres", "/test");
return ajax; return ajax;
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());

View File

@ -6,9 +6,13 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://114.215.82.135:3306/hcybase?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # url: jdbc:mysql://114.215.82.135:3306/hcybase?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: hcybase # username: hcybase
password: hcybase@2020 # password: hcybase@2020
url: jdbc:mysql://13.75.92.40:3306/gen?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
# url: jdbc:mysql://10.0.0.4:3306/gen?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: gen
password: zcsbKxPseM8LhFdT
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭

View File

@ -9,24 +9,30 @@ hchyun:
# 实例演示开关 # 实例演示开关
demoEnabled: true demoEnabled: true
# 文件路径 示例( Windows配置D:/hchyun/uploadPathLinux配置(宝塔) /www/wwwroot/hchyun/uploadPath # 文件路径 示例( Windows配置D:/hchyun/uploadPathLinux配置(宝塔) /www/wwwroot/hchyun/uploadPath
profile: F:/hchyun/uploadPath # profile: /www/wwwroot/gen/uploadPath
profile: D:/gen/uploadPath
# 获取ip地址开关 # 获取ip地址开关
addressEnabled: false addressEnabled: true
# 验证码类型 math 数组计算 char 字符验证 # 验证码类型 math 数组计算 char 字符验证
captchaType: math captchaType: math
ftp: ftp:
# ftp服务器ip地址 # ftp服务器ip地址
ftpAddress: 114.215.82.135 # ftpAddress: 114.215.82.135
ftpAddress: 13.75.92.40
# 端口号 # 端口号
ftpPort: 21 ftpPort: 21
# 用户名 # 用户名
ftpUsername: hcyftp # ftpUsername: hcyftp
ftpUsername: genfile
# 密码 # 密码
ftpPassword: hcyftp@2020 # ftpPassword: hcyftp@2020
ftpPassword: xanTPWM7jC4XpcWx
# 字符集编码 # 字符集编码
encoding: UTF-8 encoding: UTF-8
# 资源域名末尾以/结尾 # 资源域名末尾以/结尾
resources: http://download.hchyun.com resources: https://download.odliken.top
#后端部署域名
apiurl: https://apig.odliken.top
# 公开目录 # 公开目录
pubfiles: pubfiles pubfiles: pubfiles
# 保护目录 # 保护目录
@ -80,11 +86,13 @@ spring:
# redis 配置 # redis 配置
redis: redis:
# 地址 # 地址
host: 114.215.82.135 # host: 114.215.82.135
# host: 127.0.0.1
host: 13.70.28.14
# 端口默认为6379 # 端口默认为6379
port: 6378 port: 6379
# 密码 # 密码
password: hcy@2020 password: 926425
# 连接超时时间 # 连接超时时间
timeout: 10s timeout: 10s
lettuce: lettuce:

View File

@ -56,8 +56,18 @@ public class FtpUtils {
private static String encoding; private static String encoding;
//静态资源域名 //静态资源域名
private static String resources; private static String resources;
//后端部署域名
private static String apiurl;
public static String getApiurl() {
return apiurl;
}
public void setApiurl(String apiurl) {
FtpUtils.apiurl = apiurl;
}
public static String getAvatarDir() { public static String getAvatarDir() {
return pubfiles + "avatar"; return pubfiles + "avatar";
} }

View File

@ -0,0 +1,8 @@
文件上传:
文件通过上传接口上传到后端 后端通过ftp存放到公共临时文件存放中心,返回临时文件中的静态资源路径
点击提交时:后端通过ftp从临时文件资源中心获取到文件,在通过ftp上传到文件资源中心并删除临时文件中心中的文件
下载:
点击下载,系统通过ftp从文件资源中心获取到文件流,通过ftp存放在临时文件中,并返回当前文件在临时文件中心的网络静态资源路径,前端再一次发送请求到,
1.后端通过网络资源获取到网络文件并返回给前端
2.通过js直接获取网络资源
最后都需要连接零时资源中心的ftp删除文件