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);