fix: 下载接口的range无效
parent
3812a46e2f
commit
cde421e735
|
@ -44,13 +44,17 @@ public class FileController : ControllerBase {
|
|||
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> UploadFilePart(string fileId, [FromForm] UploadFileDto dto) {
|
||||
var metadata = await _knowledgeFileHandler.GetFileMetadata(fileId);
|
||||
if (metadata.Ticket != dto.Ticket) {
|
||||
return this.ProblemFromCode(ErrorCodes.TicketMismatch);
|
||||
}
|
||||
try {
|
||||
var metadata = await _knowledgeFileHandler.GetFileMetadata(fileId);
|
||||
if (metadata.Ticket != dto.Ticket) {
|
||||
return this.ProblemFromCode(ErrorCodes.TicketMismatch);
|
||||
}
|
||||
|
||||
await _knowledgeFileHandler.SaveFileSlice(fileId, dto.File, dto.RangeStart, dto.RangeEnd);
|
||||
return Ok();
|
||||
await _knowledgeFileHandler.SaveFileSlice(fileId, dto.File, dto.RangeStart, dto.RangeEnd);
|
||||
return Ok();
|
||||
} catch (FileNotFoundException e) {
|
||||
return Problem(statusCode: StatusCodes.Status404NotFound, title: e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("complete")]
|
||||
|
|
|
@ -85,10 +85,10 @@ public class KnowledgeFileHandler {
|
|||
|
||||
public async Task<Memory<byte>> ReadRanged(string fileId, ulong rangeStart, ulong rangeEnd) {
|
||||
var metadata = await GetFileMetadata(fileId);
|
||||
var fileStream = File.OpenRead(GetFileName(fileId, metadata.Suffix));
|
||||
await using var fileStream = File.OpenRead(GetFileName(fileId, metadata.Suffix));
|
||||
var buffer = new Memory<byte>(new byte[rangeEnd - rangeStart]);
|
||||
fileStream.Seek((long)rangeStart, SeekOrigin.Begin);
|
||||
await fileStream.ReadExactlyAsync(buffer);
|
||||
fileStream.Close();
|
||||
return buffer;
|
||||
}
|
||||
}
|
|
@ -15,7 +15,17 @@ public class UnitTest1 {
|
|||
// Console.WriteLine("--- 127.0.0.1:8090 ---");
|
||||
|
||||
// var resp = await client.GetAsync("https://127.0.0.1:8090/hello");
|
||||
var resp = await client.GetAsync("https://api.hammer-hfut.tk:233/aics/file/hello");
|
||||
var content = new MultipartFormDataContent();
|
||||
content.Add(new StringContent("$5$mq5AaInP$veRAiN732QWi0JIChKnFpArb8LqvJJMBn4t/QBf4DB."), "ticket");
|
||||
content.Add(new StringContent("149"), "rangeStart");
|
||||
content.Add(new StringContent("297"), "rangeEnd");
|
||||
content.Add(
|
||||
new StreamContent(File.OpenRead(@"C:\Users\arnor\Downloads\auto组第二次汇报.pptx")),
|
||||
"file",
|
||||
"file.txt"
|
||||
);
|
||||
var resp = await client.PostAsync("https://api.hammer-hfut.tk:233/aics/file/File/8d7c236a-9518-4b57-a143-3fe040cf7954", content);
|
||||
// var resp = await client.PostAsync("https://127.0.0.1:8081/File/8d7c236a-9518-4b57-a143-3fe040cf7954", content);
|
||||
var headers = new StringBuilder();
|
||||
foreach (var (headerName, headerValues) in resp.Headers) {
|
||||
headers.AppendLine($"{headerName}: {string.Join(", ", headerValues)}");
|
||||
|
|
Loading…
Reference in New Issue