diff --git a/AicsKnowledgeBase_file/Controllers/FileController.cs b/AicsKnowledgeBase_file/Controllers/FileController.cs index 442961c..53ab54b 100644 --- a/AicsKnowledgeBase_file/Controllers/FileController.cs +++ b/AicsKnowledgeBase_file/Controllers/FileController.cs @@ -19,7 +19,7 @@ public class FileController : ControllerBase { var metadata = await _knowledgeFileHandler.GetFileMetadata(fileId); var existingRanges = await _knowledgeFileHandler.GetAllPartFileRanges(fileId); - return Ok(new FileStatus(metadata.IsCompleted, metadata.Md5!, metadata.Size!.Value, existingRanges)); + return Ok(new FileStatus(metadata.IsCompleted, metadata.Md5, metadata.Size, existingRanges)); } catch (FileNotFoundException) { return NotFound(); } @@ -39,8 +39,8 @@ public class FileController : ControllerBase { } } - [HttpPost("metadata")] - public async Task PostFileMetadata(string fileId, [FromBody] ClientFileMetadata metadata) { + // [HttpPost("metadata")] + /*public async Task PostFileMetadata(string fileId, [FromBody] ClientFileMetadata metadata) { var currentData = await _knowledgeFileHandler.GetFileMetadata(fileId); if (currentData.Ticket != metadata.Ticket) { return this.ProblemFromCode(ErrorCodes.TicketMismatch); @@ -54,7 +54,7 @@ public class FileController : ControllerBase { currentData.Size = metadata.Size; await _knowledgeFileHandler.SaveFileMetadata(fileId, currentData); return Ok(); - } + }*/ [HttpPost] public async Task UploadFilePart(string fileId, [FromForm] UploadFileDto dto) { @@ -84,11 +84,11 @@ public class FileController : ControllerBase { } } -public record ClientFileMetadata( +/*public record ClientFileMetadata( string Ticket, string Md5, ulong Size -); +);*/ public record UploadFileDto( string Ticket, diff --git a/AicsKnowledgeBase_file/Handlers/KnowledgeFileHandler.cs b/AicsKnowledgeBase_file/Handlers/KnowledgeFileHandler.cs index 4117ba9..0437729 100644 --- a/AicsKnowledgeBase_file/Handlers/KnowledgeFileHandler.cs +++ b/AicsKnowledgeBase_file/Handlers/KnowledgeFileHandler.cs @@ -27,7 +27,7 @@ public class KnowledgeFileHandler { var range = fileName.Split('.')[2].Split('-'); return Tuple.Create(ulong.Parse(range[0]), ulong.Parse(range[1])); } - + public async Task>> GetAllPartFileRanges(string fileId) { var result = (await GetAllPartFiles(fileId)).Select(ConvertPartFileNameToRange).ToList(); result.Sort((a, b) => (int)(a.Item1 - b.Item1)); @@ -49,6 +49,7 @@ public class KnowledgeFileHandler { if (slices.Count == 0) { throw new InvalidDataException($"0-{metadata.Size}"); } + if (slices.First().Item1 != 0) { throw new InvalidDataException($"0-{slices.First().Item1}"); } diff --git a/AicsKnowledgeBase_file/Handlers/UpdateFileMessageConsumerHandler.cs b/AicsKnowledgeBase_file/Handlers/UpdateFileMessageConsumerHandler.cs index 1a0161a..b38b725 100644 --- a/AicsKnowledgeBase_file/Handlers/UpdateFileMessageConsumerHandler.cs +++ b/AicsKnowledgeBase_file/Handlers/UpdateFileMessageConsumerHandler.cs @@ -43,7 +43,9 @@ public class UpdateFileMessageConsumerHandler : BackgroundService { var msg = result.Message.Value!; await _knowledgeFileHandler.SaveFileMetadata(msg.Id, new FileMetadata { IsCompleted = false, - Ticket = msg.Ticket + Ticket = msg.Ticket, + Md5 = msg.Md5, + Size = msg.Size }); } catch (ConsumeException e) { _logger.LogError("Consume Exception: {Exception}", e); @@ -59,5 +61,7 @@ public class UpdateFileMessageConsumerHandler : BackgroundService { public record FileTicket( [JsonProperty("ticket")] string Ticket, - [JsonProperty("id")] string Id + [JsonProperty("id")] string Id, + [JsonProperty("md5")] string Md5, + [JsonProperty("size")] ulong Size ); \ No newline at end of file diff --git a/AicsKnowledgeBase_file/Models/FileMetadata.cs b/AicsKnowledgeBase_file/Models/FileMetadata.cs index 2242906..6c08695 100644 --- a/AicsKnowledgeBase_file/Models/FileMetadata.cs +++ b/AicsKnowledgeBase_file/Models/FileMetadata.cs @@ -3,6 +3,6 @@ public class FileMetadata { public bool IsCompleted { get; set; } = false; public string Ticket { get; set; } = null!; - public string? Md5 { get; set; } - public ulong? Size { get; set; } + public string Md5 { get; set; } = null!; + public ulong Size { get; set; } = 0; } \ No newline at end of file