mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-17 16:56:39 +08:00
upadte 优化OSS文件下载代码
This commit is contained in:
parent
ad6b3d4b3f
commit
8f3a1b589e
@ -2,6 +2,7 @@ package org.dromara.common.oss.core;
|
||||
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.constant.Constants;
|
||||
import org.dromara.common.core.utils.DateUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
@ -41,6 +42,7 @@ import java.util.function.Consumer;
|
||||
*
|
||||
* @author AprilWind
|
||||
*/
|
||||
@Slf4j
|
||||
public class OssClient {
|
||||
|
||||
/**
|
||||
@ -279,19 +281,19 @@ public class OssClient {
|
||||
|
||||
// 构建写出订阅器对象
|
||||
return out -> {
|
||||
// 注意,此处不需要显式关闭 channel ,channel 会在 out 关闭时自动关闭
|
||||
WritableByteChannel channel = Channels.newChannel(out);
|
||||
|
||||
// 创建可写入的字节通道
|
||||
try(WritableByteChannel channel = Channels.newChannel(out)){
|
||||
// 订阅数据
|
||||
publisher.subscribe(byteBuffer -> {
|
||||
try {
|
||||
while (byteBuffer.hasRemaining()) {
|
||||
try {
|
||||
channel.write(byteBuffer);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}).join();
|
||||
}
|
||||
};
|
||||
} catch (Exception e) {
|
||||
throw new OssException("文件下载失败,错误信息:[" + e.getMessage() + "]");
|
||||
|
Loading…
Reference in New Issue
Block a user