Przeglądaj źródła

【5092】用于四川肿瘤onlyoffice保存报错问题

ZhuJiaHao 7 miesięcy temu
rodzic
commit
e4f7e1eed8

+ 31 - 3
ibps-comp-root/modules/comp-file-server/src/main/java/com/lc/ibps/cloud/file/provider/DownloadProvider.java

@@ -512,9 +512,37 @@ public class DownloadProvider extends GenericUploadProvider implements IDownload
 		if(!"".equals(data) && data!=null) {
 			outId = data;
 		}
-		logger.info("================================================================");
-		logger.info("callBackSaveDocument方法,尝试连接下载地址: {}", downloadUri);
-		logger.info("================================================================");
+
+		/**
+		 * 四川肿瘤特殊处理:
+		 * 由于四川肿瘤使用网闸摆渡的网络策略,前端传入了摆渡前的ip地址,导致获取文件报错
+		 * 以下对请求url做强制转换,确保请求ip正确。
+		 * 目前在platform模块的的application.yml文件里增加两个配置项:
+		 * 		isSiChuanZhongLiu: true  ## 为true则会对url进行内容替换,为false或者没有该参数则不做替换处理。
+		 * 		siChuanZhongLiuServerIp: 192.168.2.161   ## 需要替换的ip地址,要加上端口的话写成192.168.2.161:80
+		 *
+		 */
+		logger.warn("================================================================");
+		logger.warn("callBackSaveDocument方法,尝试连接下载地址: {}", downloadUri);
+
+		boolean replaceEnable = Boolean.parseBoolean(AppUtil.getProperty("isSiChuanZhongLiu", "false"));
+		String replaceIp = AppUtil.getProperty("siChuanZhongLiuServerIp", "192.168.8.209");
+		if (replaceEnable && downloadUri != null) {
+			try {
+				URL urlObj = new URL(downloadUri);
+				// 构造新的URL
+				String newUrl = urlObj.getProtocol() + "://" + replaceIp + urlObj.getFile();
+				downloadUri = newUrl;
+				logger.warn("callBackSaveDocument方法,替换修改后的地址: {}", downloadUri);
+
+			} catch (Exception e) {
+				logger.error("downloadUri替换失败: {}", downloadUri, e);
+			}
+		}
+		logger.warn("================================================================");
+
+
+
 		//解析得出编辑后的文件流
 		URL url = new URL(downloadUri);
 		java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();