From 2c2b77fcc37e1308ec838096767e69035f1b2ac5 Mon Sep 17 00:00:00 2001 From: xiezhijun <15270898033@163.com> Date: Mon, 26 Jul 2021 18:17:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=BE=E7=89=87=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0OSS=E8=B7=AF=E5=BE=84=E7=BC=BA=E5=A4=B1=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stdiet/common/utils/file/FileUtils.java | 13 ++++++++ .../common/utils/oss/AliyunOSSUtils.java | 31 ++++++++++++++----- .../stdiet/custom/utils/LuceneIndexUtils.java | 2 -- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/stdiet-common/src/main/java/com/stdiet/common/utils/file/FileUtils.java b/stdiet-common/src/main/java/com/stdiet/common/utils/file/FileUtils.java index c9a14466c..17eb25095 100644 --- a/stdiet-common/src/main/java/com/stdiet/common/utils/file/FileUtils.java +++ b/stdiet-common/src/main/java/com/stdiet/common/utils/file/FileUtils.java @@ -183,4 +183,17 @@ public class FileUtils extends org.apache.commons.io.FileUtils } return filename; } + + /** + * 获取文件类型 + * @param fileUrl 文件名称 + * @param prefixFlag 是否带连接符 . + * @return + */ + public static String getFileType(String fileUrl, boolean prefixFlag){ + if(fileUrl == null || fileUrl.lastIndexOf(".") == -1){ + return ""; + } + return fileUrl.substring(fileUrl.lastIndexOf(".")+(prefixFlag ? 0 : 1)); + } } diff --git a/stdiet-common/src/main/java/com/stdiet/common/utils/oss/AliyunOSSUtils.java b/stdiet-common/src/main/java/com/stdiet/common/utils/oss/AliyunOSSUtils.java index 4e7ccdd53..fb2816057 100644 --- a/stdiet-common/src/main/java/com/stdiet/common/utils/oss/AliyunOSSUtils.java +++ b/stdiet-common/src/main/java/com/stdiet/common/utils/oss/AliyunOSSUtils.java @@ -23,6 +23,9 @@ public class AliyunOSSUtils { //下载链接默认有效期 private static final Long expire = 3600L * 1000 * 24; + //默认文件路径前缀 + private static final String default_prefix = "https://stdiet.oss-cn-shenzhen.aliyuncs.com"; + public static OSS getOssClient() { return new OSSClientBuilder().build(AliyunOSSConfig.EndPoint, AliyunOSSConfig.AccessKeyID, AliyunOSSConfig.AccessKeySecret); } @@ -50,7 +53,8 @@ public class AliyunOSSUtils { * @return 文件URL */ private static String getRealName(String oranName) { - return getURLHead() + oranName; + String fileUrl = getURLHead() + oranName; + return isAliyunUrl(fileUrl) ? fileUrl : null; } /** @@ -71,10 +75,10 @@ public class AliyunOSSUtils { //去尾 String tail = oranName.substring(cutPoint); //返回正确的带路径的图片名称 - return prefix + head + uuid + "_" + tail; + return prefix + head + uuid + FileUtils.getFileType(tail, true); } //不存在 直接返回 - return prefix + uuid + "_" + oranName; + return prefix + uuid + FileUtils.getFileType(oranName, true); } /** @@ -231,7 +235,7 @@ public class AliyunOSSUtils { * @return */ public static String generatePresignedUrl(String fileUrl){ - if(StringUtils.isEmpty(fileUrl)) { + if(!isAliyunUrl(fileUrl)) { return null; } // 创建OSSClient实例。 @@ -261,8 +265,10 @@ public class AliyunOSSUtils { Date expiration = new Date(System.currentTimeMillis() + expire); for (String fileUrl : fileUrlList) { - String url = ossClient.generatePresignedUrl(AliyunOSSConfig.Buckets, getObjectName(fileUrl), expiration).toString(); - downUrlList.add(url); + if(isAliyunUrl(fileUrl)){ + String url = ossClient.generatePresignedUrl(AliyunOSSConfig.Buckets, getObjectName(fileUrl), expiration).toString(); + downUrlList.add(url); + } } // 关闭OSSClient。 @@ -271,6 +277,15 @@ public class AliyunOSSUtils { return downUrlList; } + /** + * 判断是否为阿里云OSS路径格式 + * @param fileUrl + * @return + */ + public static boolean isAliyunUrl(String fileUrl){ + return StringUtils.isNotEmpty(fileUrl) && fileUrl.startsWith(default_prefix); + } + /** * * @param fileUrlList @@ -288,7 +303,9 @@ public class AliyunOSSUtils { List urlList = fileUrlList.get(key); List downList = new ArrayList<>(); for (String fileUrl : urlList) { - downList.add(ossClient.generatePresignedUrl(AliyunOSSConfig.Buckets, getObjectName(fileUrl), expiration).toString()); + if(isAliyunUrl(fileUrl)){ + downList.add(ossClient.generatePresignedUrl(AliyunOSSConfig.Buckets, getObjectName(fileUrl), expiration).toString()); + } } downUrlMap.put(key, downList); } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/LuceneIndexUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/LuceneIndexUtils.java index b7af09341..9e87d67cc 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/LuceneIndexUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/LuceneIndexUtils.java @@ -1,9 +1,7 @@ package com.stdiet.custom.utils; -import com.stdiet.common.utils.StringUtils; import org.apache.lucene.document.Document; import org.apache.lucene.index.*; -import org.apache.lucene.queryparser.classic.MultiFieldQueryParser; import org.apache.lucene.search.*; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory;