public void QueueUpload(FromUrlRequest request, string requestId, User user)
 {
     ThreadPool.QueueUserWorkItem(async _ =>
     {
         using var scope = _serviceProvider.CreateScope();
         var context     = scope.ServiceProvider.GetService <DefaultContext>();
         var service     = scope.ServiceProvider.GetService <ProxmoxVmTemplateService>();
         try
         {
             using var response = DownloadFile(ShareLinkConverter.ConvertUrl(request.Url));
             long contentLength = long.Parse(response.Headers["Content-Length"]);
             using var stream   = response.GetResponseStream();
             await service.UploadTemplate(context, request.Name, user, stream, contentLength, progress => SetProgress(requestId, progress));
             SetComplete(requestId);
         }
         catch (Exception e)
         {
             SetError(requestId);
             Console.Error.WriteLine(e);
         }
     });
 }
 public void TestOneDriveLink()
 {
     Assert.AreEqual(
         "https://api.onedrive.com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBc2Nmckx4aW1EU0lnYXdWSVZzUENYUGs1UjRSbFE_ZT1jaEdBaUU/root/content",
         ShareLinkConverter.ConvertOneDrive("https://1drv.ms/u/s!AscfrLximDSIgawVIVsPCXPk5R4RlQ?e=chGAiE"));
 }
 public void TestGoogleDriveLink()
 {
     Assert.AreEqual(
         "https://drive.google.com/uc?export=download&id=1bz9neuV7wgVL3WUJNnJaRYkhcgXTh_dS",
         ShareLinkConverter.ConvertGoogleDrive("https://drive.google.com/file/d/1bz9neuV7wgVL3WUJNnJaRYkhcgXTh_dS/view?usp=sharing"));
 }