diff --git a/Oqtane.Client/Modules/Controls/FileManager.razor b/Oqtane.Client/Modules/Controls/FileManager.razor index fe3a0e15..6985ba0d 100644 --- a/Oqtane.Client/Modules/Controls/FileManager.razor +++ b/Oqtane.Client/Modules/Controls/FileManager.razor @@ -377,14 +377,19 @@ { success = false; var filename = uploads[upload].Split(':')[0]; - var size = Int64.Parse(uploads[upload].Split(':')[1]); - var maxattempts = (int)Math.Ceiling(size / 500000.0) + 4; // 30 MB takes 1 minute at 5 Mbps (min 5 attempts) + + var size = Int64.Parse(uploads[upload].Split(':')[1]); // bytes + var megabits = (size / 1048576.0) * 8; // binary conversion + var uploadspeed = 2; // 2 Mbps (3G ranges from 300Kbps to 3Mbps) + var uploadtime = (megabits / uploadspeed); // seconds + var maxattempts = 5; // polling (minimum timeout duration will be 5 seconds) + var sleep = (int)Math.Ceiling(uploadtime / maxattempts) * 1000; // milliseconds int attempts = 0; while (attempts < maxattempts && !success) { attempts += 1; - Thread.Sleep(1000); + Thread.Sleep(sleep); if (Folder == Constants.PackagesFolder) {