fix: improve part size calculation in optimal_part_info function (#1532)
Signed-off-by: mengyu-sxyz <[email protected]> Co-authored-by: loverustfs <[email protected]> Co-authored-by: houseme <[email protected]> Co-authored-by: heihutu <[email protected]>
This commit is contained in:
co-authored by
loverustfs
houseme
heihutu
parent
ccf3b29df5
commit
aa011ade19
@@ -87,14 +87,14 @@ pub fn optimal_part_info(object_size: i64, configured_part_size: u64) -> Result<
|
||||
object_size = configured_part_size as i64 * MAX_PARTS_COUNT;
|
||||
}
|
||||
} else {
|
||||
let mut configured_part_size = configured_part_size;
|
||||
configured_part_size = MIN_PART_SIZE as u64;
|
||||
part_size_flt = (object_size / MAX_PARTS_COUNT) as f64;
|
||||
part_size_flt = (part_size_flt / configured_part_size as f64) * configured_part_size as f64;
|
||||
let min_part = MIN_PART_SIZE as f64;
|
||||
part_size_flt = (object_size as f64 / MAX_PARTS_COUNT as f64).ceil();
|
||||
part_size_flt = part_size_flt.max(min_part);
|
||||
part_size_flt = (part_size_flt / min_part).ceil() * min_part;
|
||||
}
|
||||
|
||||
let total_parts_count = (object_size as f64 / part_size_flt).ceil() as i64;
|
||||
let part_size = part_size_flt.ceil() as i64;
|
||||
let part_size = part_size_flt as i64;
|
||||
let last_part_size = object_size - (total_parts_count - 1) * part_size;
|
||||
Ok((total_parts_count, part_size, last_part_size))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user