From 89a2ce5a5d9aefd7064a4003b0e6eba980b5f514 Mon Sep 17 00:00:00 2001 From: xudawei Date: Thu, 10 Apr 2025 14:20:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:(REQ-3560)=20=E8=8E=B7=E5=8F=96=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=96=87=E4=BB=B6=E5=8A=A0=E4=B8=8A=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/axzo/oss/dal/entity/File.java | 19 +++++++++++++++++++ .../model/ApiSignUrlDownloadResponse.java | 5 +++++ .../dto/response/SignUrlDownloadResponse.java | 5 +++++ .../oss/service/impl/FileServiceImpl.java | 2 ++ 4 files changed, 31 insertions(+) diff --git a/oss-dal/src/main/java/cn/axzo/oss/dal/entity/File.java b/oss-dal/src/main/java/cn/axzo/oss/dal/entity/File.java index 4e58632..16a14b8 100644 --- a/oss-dal/src/main/java/cn/axzo/oss/dal/entity/File.java +++ b/oss-dal/src/main/java/cn/axzo/oss/dal/entity/File.java @@ -7,6 +7,8 @@ import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; +import java.util.Objects; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -149,4 +151,21 @@ public class File extends Model { return this.id; } + public Long fetchFileSize() { + if (Objects.isNull(this.getStorageSize()) || Objects.isNull(this.getStorageUnit())) { + return 0L; + } + + if (this.getStorageUnit().equalsIgnoreCase("b")) { + return this.getStorageSize().longValue(); + } + if (this.getStorageUnit().equalsIgnoreCase("kb")) { + return this.getStorageSize().longValue() * 1024L; + } + if (this.getStorageUnit().equalsIgnoreCase("mb")) { + return this.getStorageSize().longValue() * 1024 * 1024L; + } + return 0L; + } + } diff --git a/oss-http-api/src/main/java/cn/axzo/oss/http/model/ApiSignUrlDownloadResponse.java b/oss-http-api/src/main/java/cn/axzo/oss/http/model/ApiSignUrlDownloadResponse.java index 4796a26..9a2cbe5 100644 --- a/oss-http-api/src/main/java/cn/axzo/oss/http/model/ApiSignUrlDownloadResponse.java +++ b/oss-http-api/src/main/java/cn/axzo/oss/http/model/ApiSignUrlDownloadResponse.java @@ -29,4 +29,9 @@ public class ApiSignUrlDownloadResponse { */ private String fileName; + /** + * 文件大小 + */ + private Long fileSize; + } diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/SignUrlDownloadResponse.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/SignUrlDownloadResponse.java index 538a1a8..3860b4b 100644 --- a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/SignUrlDownloadResponse.java +++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/SignUrlDownloadResponse.java @@ -30,4 +30,9 @@ public class SignUrlDownloadResponse { */ private String fileName; + /** + * 文件大小 + */ + private Long fileSize; + } diff --git a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java index 9a2c410..9352089 100644 --- a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java +++ b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java @@ -981,6 +981,7 @@ public class FileServiceImpl implements FileService { .signUrl(this.fileManager.buildPublicXImageProcess(url, style)) .fileKey(item.getFileUuid()) .fileName(item.getFileName()) + .fileSize(item.fetchFileSize()) .build(); case PRIVATE_BUCKET://私有桶 - 临时授权链接 例如 http://xxx.png?Expire=a&AccessKeyId=b&Signature=c&repsonse-content-disposition=d String signUrl = this.fileManager.signUrlDownload(item.getBucketName(), tgtFileKey, Objects.nonNull(expire) ? expire : SIGN_URL_DOWNLOAD_EXPIRE_SECOND , item.getChannelCode(), item.getFileName(), style, hasFileName); @@ -988,6 +989,7 @@ public class FileServiceImpl implements FileService { .signUrl(UrlUtil.httpToHttps(signUrl)) .fileKey(item.getFileUuid()) .fileName(item.getFileName()) + .fileSize(item.fetchFileSize()) .build(); default: BizException.error(CodeEnum.CHANNEL_TYPE_NOT_EXIST);