preliminary update client for new server download url stuff

This commit is contained in:
Stanley Dimant
2022-08-15 17:58:09 +02:00
parent 110dbd7bdf
commit 2a2b0c3b57
4 changed files with 7 additions and 9 deletions

Submodule MareAPI updated: 1ee130413f...21fe024dfb

View File

@@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<Authors></Authors> <Authors></Authors>
<Company></Company> <Company></Company>
<Version>0.3.3</Version> <Version>0.3.4</Version>
<Description></Description> <Description></Description>
<Copyright></Copyright> <Copyright></Copyright>
<PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl> <PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl>

View File

@@ -38,7 +38,7 @@ namespace MareSynchronos.WebAPI
await _mareHub!.SendAsync(Api.SendFileDeleteAllFiles); await _mareHub!.SendAsync(Api.SendFileDeleteAllFiles);
} }
private async Task<string> DownloadFile(int downloadId, string hash, CancellationToken ct) private async Task<string> DownloadFile(int downloadId, string hash, Uri downloadUri, CancellationToken ct)
{ {
using WebClient wc = new(); using WebClient wc = new();
wc.Headers.Add("Authorization", SecretKey); wc.Headers.Add("Authorization", SecretKey);
@@ -58,11 +58,8 @@ namespace MareSynchronos.WebAPI
wc.DownloadProgressChanged += progChanged; wc.DownloadProgressChanged += progChanged;
string fileName = Path.GetTempFileName(); string fileName = Path.GetTempFileName();
var baseUri = new Uri(Regex.Replace(ApiUri, "^ws", "http"), UriKind.Absolute);
var relativeUri = new Uri("cache/" + hash, UriKind.Relative);
var fileUri = new Uri(baseUri, relativeUri);
await wc.DownloadFileTaskAsync(fileUri, fileName); await wc.DownloadFileTaskAsync(downloadUri, fileName);
CurrentDownloads[downloadId].Single(f => f.Hash == hash).Transferred = CurrentDownloads[downloadId].Single(f => f.Hash == hash).Total; CurrentDownloads[downloadId].Single(f => f.Hash == hash).Transferred = CurrentDownloads[downloadId].Single(f => f.Hash == hash).Total;
@@ -96,7 +93,7 @@ namespace MareSynchronos.WebAPI
foreach (var file in CurrentDownloads[currentDownloadId].Where(f => f.CanBeTransferred)) foreach (var file in CurrentDownloads[currentDownloadId].Where(f => f.CanBeTransferred))
{ {
var hash = file.Hash; var hash = file.Hash;
var tempFile = await DownloadFile(currentDownloadId, hash, ct); var tempFile = await DownloadFile(currentDownloadId, file.Hash, file.DownloadUri, ct);
if (ct.IsCancellationRequested) if (ct.IsCancellationRequested)
{ {
File.Delete(tempFile); File.Delete(tempFile);

View File

@@ -1,4 +1,5 @@
using MareSynchronos.API; using MareSynchronos.API;
using System;
namespace MareSynchronos.WebAPI.Utils; namespace MareSynchronos.WebAPI.Utils;
@@ -37,7 +38,7 @@ public class DownloadFileTransfer : FileTransfer
{ {
private DownloadFileDto Dto => (DownloadFileDto)TransferDto; private DownloadFileDto Dto => (DownloadFileDto)TransferDto;
public DownloadFileTransfer(DownloadFileDto dto) : base(dto) { } public DownloadFileTransfer(DownloadFileDto dto) : base(dto) { }
public Uri DownloadUri => new(Dto.Url);
public override long Total public override long Total
{ {
set { } set { }