From b003a057759927705650db650182b6fc4267fec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=B2=BE=E5=8D=8E?= <842761733@qq.com> Date: Thu, 22 Aug 2019 15:22:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=98=AF=E5=90=A6=E5=90=AF?= =?UTF-8?q?=E7=94=A8=E7=BC=93=E5=AD=98=E9=85=8D=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/conf/application.properties | 3 +++ .../java/cn/keking/config/ConfigConstants.java | 9 +++++++++ .../cn/keking/config/ConfigRefreshComponent.java | 4 ++++ .../service/impl/CompressFilePreviewImpl.java | 5 +++-- .../keking/service/impl/OfficeFilePreviewImpl.java | 14 ++++++++------ 5 files changed, 27 insertions(+), 8 deletions(-) diff --git a/jodconverter-web/src/main/conf/application.properties b/jodconverter-web/src/main/conf/application.properties index 4ab7175b..a3240050 100644 --- a/jodconverter-web/src/main/conf/application.properties +++ b/jodconverter-web/src/main/conf/application.properties @@ -31,6 +31,9 @@ spring.http.multipart.max-file-size=100MB cache.clean = true #######################################可在运行时动态配置####################################### +#是否启用缓存 +cache.enabled = false + #文本类型,默认如下,可自定义添加 #simText = txt,html,xml,properties,md,java,py,c,cpp,sql #多媒体类型,默认如下,可自定义添加 diff --git a/jodconverter-web/src/main/java/cn/keking/config/ConfigConstants.java b/jodconverter-web/src/main/java/cn/keking/config/ConfigConstants.java index 934a710e..488189de 100644 --- a/jodconverter-web/src/main/java/cn/keking/config/ConfigConstants.java +++ b/jodconverter-web/src/main/java/cn/keking/config/ConfigConstants.java @@ -14,6 +14,7 @@ import java.io.File; @Component public class ConfigConstants { + private static Boolean cacheEnabled; private static String[] simText = {}; private static String[] media = {}; private static String convertedFileCharset; @@ -23,6 +24,14 @@ public class ConfigConstants { private static String ftpControlEncoding; private static String fileDir = OfficeUtils.getHomePath() + File.separator + "file" + File.separator; + public static Boolean isCacheEnabled() { + return cacheEnabled; + } + + public static void setCacheEnabled(Boolean cacheEnabled) { + ConfigConstants.cacheEnabled = cacheEnabled; + } + public static String[] getSimText() { return simText; } diff --git a/jodconverter-web/src/main/java/cn/keking/config/ConfigRefreshComponent.java b/jodconverter-web/src/main/java/cn/keking/config/ConfigRefreshComponent.java index 32efe2ed..563a8cd9 100644 --- a/jodconverter-web/src/main/java/cn/keking/config/ConfigRefreshComponent.java +++ b/jodconverter-web/src/main/java/cn/keking/config/ConfigRefreshComponent.java @@ -22,6 +22,7 @@ public class ConfigRefreshComponent { private static final Logger LOGGER = LoggerFactory.getLogger(ConfigRefreshComponent.class); + public static final String DEFAULT_CACHE_ENABLED = "true"; public static final String DEFAULT_TXT_TYPE = "txt,html,xml,properties,md,java,py,c,cpp,sql"; public static final String DEFAULT_MEDIA_TYPE = "mp3,wav,mp4,flv"; public static final String DEFAULT_CONVERTER_CHARSET = System.getProperty("sun.jnu.encoding"); @@ -43,6 +44,7 @@ public class ConfigRefreshComponent { Properties properties = new Properties(); String text; String media; + Boolean cacheEnabled; String[] textArray; String[] mediaArray; String convertedFileCharset; @@ -55,6 +57,7 @@ public class ConfigRefreshComponent { FileReader fileReader = new FileReader(configFilePath); BufferedReader bufferedReader = new BufferedReader(fileReader); properties.load(bufferedReader); + cacheEnabled = new Boolean(properties.getProperty("cache.enabled", DEFAULT_CACHE_ENABLED)); text = properties.getProperty("simText", DEFAULT_TXT_TYPE); media = properties.getProperty("media", DEFAULT_MEDIA_TYPE); convertedFileCharset = properties.getProperty("converted.file.charset", DEFAULT_CONVERTER_CHARSET); @@ -64,6 +67,7 @@ public class ConfigRefreshComponent { ftpControlEncoding = properties.getProperty("ftp.control.encoding", DEFAULT_FTP_CONTROL_ENCODING); textArray = text.split(","); mediaArray = media.split(","); + ConfigConstants.setCacheEnabled(cacheEnabled); ConfigConstants.setSimText(textArray); ConfigConstants.setMedia(mediaArray); ConfigConstants.setConvertedFileCharset(convertedFileCharset); diff --git a/jodconverter-web/src/main/java/cn/keking/service/impl/CompressFilePreviewImpl.java b/jodconverter-web/src/main/java/cn/keking/service/impl/CompressFilePreviewImpl.java index daef2df1..c798e304 100644 --- a/jodconverter-web/src/main/java/cn/keking/service/impl/CompressFilePreviewImpl.java +++ b/jodconverter-web/src/main/java/cn/keking/service/impl/CompressFilePreviewImpl.java @@ -1,5 +1,6 @@ package cn.keking.service.impl; +import cn.keking.config.ConfigConstants; import cn.keking.model.FileAttribute; import cn.keking.model.ReturnResponse; import cn.keking.service.FilePreview; @@ -33,7 +34,7 @@ public class CompressFilePreviewImpl implements FilePreview{ String suffix=fileAttribute.getSuffix(); String fileTree = null; // 判断文件名是否存在(redis缓存读取) - if (!StringUtils.hasText(fileUtils.getConvertedFile(fileName))) { + if (!StringUtils.hasText(fileUtils.getConvertedFile(fileName)) || !ConfigConstants.isCacheEnabled()) { ReturnResponse response = downloadUtils.downLoad(fileAttribute, fileName); if (0 != response.getCode()) { model.addAttribute("fileType", suffix); @@ -48,7 +49,7 @@ public class CompressFilePreviewImpl implements FilePreview{ } else if ("7z".equalsIgnoreCase(suffix)) { fileTree = zipReader.read7zFile(filePath, fileName); } - if (fileTree != null && !"null".equals(fileTree)) { + if (fileTree != null && !"null".equals(fileTree) && ConfigConstants.isCacheEnabled()) { fileUtils.addConvertedFile(fileName, fileTree); } } else { diff --git a/jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java b/jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java index 2df17311..b3f27cfd 100644 --- a/jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java +++ b/jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java @@ -52,7 +52,7 @@ public class OfficeFilePreviewImpl implements FilePreview { String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + (isHtml ? "html" : "pdf"); String outFilePath = fileDir + pdfName; // 判断之前是否已转换过,如果转换过,直接返回,否则执行转换 - if (!fileUtils.listConvertedFiles().containsKey(pdfName)) { + if (!fileUtils.listConvertedFiles().containsKey(pdfName) || !ConfigConstants.isCacheEnabled()) { String filePath = fileDir + fileName; if (!new File(filePath).exists()) { ReturnResponse response = downloadUtils.downLoad(fileAttribute, null); @@ -69,12 +69,14 @@ public class OfficeFilePreviewImpl implements FilePreview { if (f.exists()) { f.delete(); } - if (isHtml) { - // 对转换后的文件进行操作(改变编码方式) - fileUtils.doActionConvertedFile(outFilePath); + if (ConfigConstants.isCacheEnabled()) { + if (isHtml) { + // 对转换后的文件进行操作(改变编码方式) + fileUtils.doActionConvertedFile(outFilePath); + } + // 加入缓存 + fileUtils.addConvertedFile(pdfName, fileUtils.getRelativePath(outFilePath)); } - // 加入缓存 - fileUtils.addConvertedFile(pdfName, fileUtils.getRelativePath(outFilePath)); } } if (!isHtml && originUrl != null && (OFFICE_PREVIEW_TYPE_IMAGE.equals(officePreviewType) || OFFICE_PREVIEW_TYPE_ALLIMAGES.equals(officePreviewType))) {