mirror of
				https://github.com/continew-org/continew-starter.git
				synced 2025-10-31 10:57:15 +08:00 
			
		
		
		
	refactor(storage): 修复对象存储路径拼接问题
This commit is contained in:
		| @@ -71,16 +71,29 @@ public class StorageUtils { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 默认路径地址 格式 2024/03/10/ | ||||
|      * 本地存储默认路径地址 格式 | ||||
|      * <p>mac/linux : 2024/03/10/</> | ||||
|      * <p>windows : 2024\03\10\</> | ||||
|      * | ||||
|      * @return {@link String } | ||||
|      */ | ||||
|     public static String defaultPath() { | ||||
|     public static String localDefaultPath() { | ||||
|         LocalDate today = LocalDate.now(); | ||||
|         return Paths.get(String.valueOf(today.getYear()), String.valueOf(today.getMonthValue()), String.valueOf(today | ||||
|             .getDayOfMonth())) + StringConstants.SLASH; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 对象存储默认路径 格式 2024/03/10/ | ||||
|      * | ||||
|      * @return {@link String } | ||||
|      */ | ||||
|     public static String ossDefaultPath() { | ||||
|         LocalDate today = LocalDate.now(); | ||||
|         return today.getYear() + StringConstants.SLASH + today.getMonthValue() + StringConstants.SLASH + today | ||||
|             .getDayOfMonth() + StringConstants.SLASH; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 根据 endpoint 判断是否带有 http 或 https,如果没有则加上 http 前缀。 | ||||
|      * | ||||
|   | ||||
| @@ -125,7 +125,7 @@ public class LocalStorageStrategy implements StorageStrategy<LocalClient> { | ||||
|             String formatFileName = StorageUtils.formatFileName(fileName); | ||||
|             // 判断文件路径是否为空  为空给默认路径 格式 2024/12/30/ | ||||
|             if (StrUtil.isEmpty(path)) { | ||||
|                 path = StorageUtils.defaultPath(); | ||||
|                 path = StorageUtils.localDefaultPath(); | ||||
|             } | ||||
|             // 判断文件夹是否存在 不存在则创建 | ||||
|             Path folderPath = Paths.get(bucketName, path); | ||||
|   | ||||
| @@ -54,7 +54,6 @@ import java.io.ByteArrayOutputStream; | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| import java.net.HttpURLConnection; | ||||
| import java.nio.file.Paths; | ||||
| import java.time.Duration; | ||||
| import java.time.LocalDateTime; | ||||
| import java.util.Base64; | ||||
| @@ -157,7 +156,7 @@ public class OssStorageStrategy implements StorageStrategy<OssClient> { | ||||
|             String formatFileName = StorageUtils.formatFileName(fileName); | ||||
|             // 判断文件路径是否为空  为空给默认路径 格式 2024/12/30/ | ||||
|             if (StrUtil.isEmpty(path)) { | ||||
|                 path = StorageUtils.defaultPath(); | ||||
|                 path = StorageUtils.ossDefaultPath(); | ||||
|             } | ||||
|             ThumbnailResp thumbnailResp = null; | ||||
|             //判断是否需要上传缩略图 前置条件 文件必须为图片 | ||||
| @@ -174,7 +173,7 @@ public class OssStorageStrategy implements StorageStrategy<OssClient> { | ||||
|             } | ||||
|             String eTag = etag; | ||||
|             // 构建 上传后的文件路径地址 格式 xxx/xxx/xxx.jpg | ||||
|             String filePath = Paths.get(path, formatFileName).toString(); | ||||
|             String filePath = path + formatFileName; | ||||
|             // 构建 文件上传记录 并返回 | ||||
|             return buildStorageRecord(bucketName, fileName, filePath, eTag, fileBytes.length, thumbnailResp); | ||||
|         } catch (IOException e) { | ||||
| @@ -185,7 +184,7 @@ public class OssStorageStrategy implements StorageStrategy<OssClient> { | ||||
|     @Override | ||||
|     public void upload(String bucketName, String fileName, String path, InputStream inputStream, String fileType) { | ||||
|         // 构建 S3 存储 文件路径 | ||||
|         String filePath = Paths.get(path, fileName).toString(); | ||||
|         String filePath = path + fileName; | ||||
|         try { | ||||
|             long available = inputStream.available(); | ||||
|             // 构建异步请求体,指定内容长度 | ||||
| @@ -203,7 +202,8 @@ public class OssStorageStrategy implements StorageStrategy<OssClient> { | ||||
|             // 写入输入流内容到请求体 | ||||
|             requestBody.writeInputStream(inputStream); | ||||
|             CompletedUpload uploadResult = upload.completionFuture().join(); | ||||
|             etag = uploadResult.response().eTag(); | ||||
|  | ||||
|             etag = uploadResult.response().eTag().replace("\"", ""); | ||||
|         } catch (IOException e) { | ||||
|             throw new BusinessException("文件上传异常", e); | ||||
|         } | ||||
| @@ -225,7 +225,7 @@ public class OssStorageStrategy implements StorageStrategy<OssClient> { | ||||
|             inputStream = new ByteArrayInputStream(outputStream.toByteArray()); | ||||
|             // 上传文件 | ||||
|             this.upload(bucketName, thumbnailFileName, path, inputStream, fileType); | ||||
|             return new ThumbnailResp((long)outputStream.size(), Paths.get(path, thumbnailFileName).toString()); | ||||
|             return new ThumbnailResp((long)outputStream.size(), path + thumbnailFileName); | ||||
|         } catch (IOException e) { | ||||
|             throw new BusinessException("缩略图处理异常", e); | ||||
|         } | ||||
| @@ -326,7 +326,7 @@ public class OssStorageStrategy implements StorageStrategy<OssClient> { | ||||
|         uploadResp.setThumbnailUrl(thumbnailUrl); | ||||
|         uploadResp.setThumbnailSize(thumbnailSize); | ||||
|         uploadResp.seteTag(eTag); | ||||
|         uploadResp.setPath(Paths.get(bucketName, filePath).toString()); | ||||
|         uploadResp.setPath(bucketName + filePath); | ||||
|         uploadResp.setBucketName(bucketName); | ||||
|         uploadResp.setCreateTime(LocalDateTime.now()); | ||||
|         storageDao.add(uploadResp); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user