diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/utils/OssUtil.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/utils/OssUtil.java index c27b156..0b845f0 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/utils/OssUtil.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/utils/OssUtil.java @@ -3,6 +3,7 @@ package com.ruoyi.utils; import com.aliyun.oss.ClientBuilderConfiguration; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.model.ObjectMetadata; import com.aliyuncs.utils.IOUtils; import com.ruoyi.common.config.OssConfig; import lombok.extern.slf4j.Slf4j; @@ -51,8 +52,13 @@ public class OssUtil { ClientBuilderConfiguration conf = new ClientBuilderConfiguration(); OSS client = new OSSClientBuilder().build(ossConfig.getEndPoint(), ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret(), conf); try { + // 在获取文件流之前,先获取文件元数据 + ObjectMetadata metadata = client.getObjectMetadata(ossConfig.getBucketName(), fileKey); + long contentLength = metadata.getContentLength(); stream = client.getObject(ossConfig.getBucketName(), fileKey).getObjectContent(); response.reset(); + // 设置Content-Length响应头 + response.setContentLengthLong(contentLength); response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", "attachment;filename=CDbay-" + URLEncoder.encode(fileName, "UTF-8") .replace("+", "%20")+".apk");