diff --git a/src/main.rs b/src/main.rs index 23d375f..548a5ec 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use std::{ + cmp::{max, min}, io::{stdout, Write}, path::{Path, PathBuf}, sync::Arc, @@ -392,10 +393,12 @@ async fn multipart_upload( let upload_id = multipart_upload_res.upload_id().unwrap().to_string(); - let mut chunk_count = file_size / CHUNK_SIZE as u64; - let mut size_of_last_chunk = file_size % CHUNK_SIZE as u64; + let chunk_size = max(CHUNK_SIZE as u64, file_size / 10000); + + let mut chunk_count = file_size / chunk_size; + let mut size_of_last_chunk = file_size % chunk_size; if size_of_last_chunk == 0 { - size_of_last_chunk = CHUNK_SIZE as u64; + size_of_last_chunk = chunk_size; chunk_count -= 1; }