This commit is contained in:
Vinjor 2025-10-17 14:09:52 +08:00
parent 48aaeb8ac2
commit d6ff88d535

View File

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