adjust to send only one packet for all changes at once
This commit is contained in:
@@ -17,13 +17,12 @@ namespace MareSynchronos.WebAPI
|
||||
public partial class ApiController
|
||||
{
|
||||
private int _downloadId = 0;
|
||||
public void CancelUpload(ObjectKind objectKind)
|
||||
public void CancelUpload()
|
||||
{
|
||||
_uploadTokens.TryGetValue(objectKind, out var cts);
|
||||
if (cts != null)
|
||||
if (_uploadToken != null)
|
||||
{
|
||||
Logger.Warn("Cancelling upload");
|
||||
cts?.Cancel();
|
||||
Logger.Debug("Cancelling upload");
|
||||
_uploadToken?.Cancel();
|
||||
_mareHub!.SendAsync(Api.SendFileAbortUpload);
|
||||
CurrentUploads.Clear();
|
||||
}
|
||||
@@ -41,7 +40,6 @@ namespace MareSynchronos.WebAPI
|
||||
await using var fs = File.OpenWrite(fileName);
|
||||
await foreach (var data in reader.WithCancellation(ct))
|
||||
{
|
||||
//Logger.Debug("Getting chunk of " + hash);
|
||||
CurrentDownloads[downloadId].Single(f => f.Hash == hash).Transferred += data.Length;
|
||||
await fs.WriteAsync(data, ct);
|
||||
}
|
||||
@@ -124,12 +122,12 @@ namespace MareSynchronos.WebAPI
|
||||
if (!IsConnected || SecretKey == "-") return;
|
||||
Logger.Debug("Sending Character data to service " + ApiUri);
|
||||
|
||||
CancelUpload(character.ObjectKind);
|
||||
_uploadTokens[character.ObjectKind] = new CancellationTokenSource();
|
||||
var uploadToken = _uploadTokens[character.ObjectKind]!.Token;
|
||||
CancelUpload();
|
||||
_uploadToken = new CancellationTokenSource();
|
||||
var uploadToken = _uploadToken.Token;
|
||||
Logger.Verbose("New Token Created");
|
||||
|
||||
var filesToUpload = await _mareHub!.InvokeAsync<List<UploadFileDto>>(Api.InvokeFileSendFiles, character.FileReplacements.Select(c => c.Hash).Distinct(), uploadToken);
|
||||
var filesToUpload = await _mareHub!.InvokeAsync<List<UploadFileDto>>(Api.InvokeFileSendFiles, character.FileReplacements.SelectMany(c => c.Value.Select(v => v.Hash)).Distinct(), uploadToken);
|
||||
|
||||
foreach (var file in filesToUpload.Where(f => !f.IsForbidden))
|
||||
{
|
||||
@@ -205,8 +203,8 @@ namespace MareSynchronos.WebAPI
|
||||
Logger.Warn("=== Upload operation was cancelled ===");
|
||||
}
|
||||
|
||||
Logger.Verbose("Upload complete for " + character.Hash);
|
||||
_uploadTokens.Remove(character.ObjectKind);
|
||||
Logger.Verbose("Upload complete for " + character.GetHashCode());
|
||||
_uploadToken = null;
|
||||
}
|
||||
|
||||
private async Task<(string, byte[])> GetCompressedFileData(string fileHash, CancellationToken uploadToken)
|
||||
|
||||
Reference in New Issue
Block a user