修改文件下载断点续传问题
This commit is contained in:
parent
67b9bc9889
commit
be2bf9463c
@ -205,19 +205,27 @@ public class MinIoFileServiceImpl extends DefaultBaseService implements IMinIoFi
|
|||||||
long contentLength = Long.valueOf(filePO.getFileSize());
|
long contentLength = Long.valueOf(filePO.getFileSize());
|
||||||
long startRange = 0;
|
long startRange = 0;
|
||||||
long endRange = contentLength - 1;
|
long endRange = contentLength - 1;
|
||||||
|
LOG.debug("1.startRange: {}, endRange: {}", startRange, endRange);
|
||||||
if (!StringUtils.isBlank(rangeString)) {
|
if (!StringUtils.isBlank(rangeString)) {
|
||||||
response.setContentType("multipart/byteranges");
|
response.setContentType("multipart/byteranges");
|
||||||
String[] rangeArray = rangeString.substring(rangeString.indexOf("=") + 1).split("-");
|
String[] rangeArray = rangeString.substring(rangeString.indexOf("=") + 1).split("-");
|
||||||
startRange = Long.valueOf(rangeArray[0]);
|
startRange = Long.valueOf(rangeArray[0]);
|
||||||
if (rangeArray.length > 1) {
|
if (rangeArray.length > 1) {
|
||||||
|
LOG.debug("2.startRange: {}, endRange: {}", startRange, endRange);
|
||||||
endRange = Long.valueOf(rangeArray[1]);
|
endRange = Long.valueOf(rangeArray[1]);
|
||||||
}
|
}
|
||||||
setRangeHeader(startRange, endRange, response, filePO.getFileId(), contentLength);
|
setRangeHeader(startRange, endRange, response, filePO.getFileId(), contentLength);
|
||||||
inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(filePO.getFileUrl()).object(objectName).offset(startRange).length(endRange - startRange).build());
|
long rangeLength = endRange - startRange + 1;
|
||||||
|
if (rangeLength <= 0) {
|
||||||
|
// 标记为已完成
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
LOG.debug("rangeLength: {}", rangeLength);
|
||||||
|
inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(filePO.getFileUrl()).object(objectName).offset(startRange).length(rangeLength + 1).build());
|
||||||
} else {
|
} else {
|
||||||
inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(filePO.getFileUrl()).object(objectName).build());
|
inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(filePO.getFileUrl()).object(objectName).build());
|
||||||
}
|
}
|
||||||
if (endRange == contentLength - 1) {
|
if (endRange == contentLength) {
|
||||||
isDownloadComplete = true;
|
isDownloadComplete = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user