@@ -450,7 +450,7 @@ pub struct PutObjectContent {
450
450
retention : Option < Retention > ,
451
451
#[ builder( default = false ) ]
452
452
legal_hold : bool ,
453
- #[ builder( default ) ]
453
+ #[ builder( default , setter ( into ) ) ]
454
454
part_size : Size ,
455
455
#[ builder( default , setter( into) ) ]
456
456
content_type : Option < String > ,
@@ -548,9 +548,10 @@ impl PutObjectContent {
548
548
. await ?;
549
549
550
550
Ok ( PutObjectContentResponse :: new ( resp, size) )
551
- } else if object_size. is_known ( ) && ( seg_bytes. len ( ) as u64 ) < part_size {
551
+ } else if let Some ( expected) = object_size. value ( )
552
+ && ( seg_bytes. len ( ) as u64 ) < part_size
553
+ {
552
554
// Not enough data!
553
- let expected: u64 = object_size. as_u64 ( ) . unwrap ( ) ;
554
555
let got: u64 = seg_bytes. len ( ) as u64 ;
555
556
Err ( ValidationErr :: InsufficientData { expected, got } . into ( ) )
556
557
} else {
@@ -642,8 +643,7 @@ impl PutObjectContent {
642
643
return Err ( ValidationErr :: TooManyParts ( part_number as u64 ) . into ( ) ) ;
643
644
}
644
645
645
- if object_size. is_known ( ) {
646
- let exp = object_size. as_u64 ( ) . unwrap ( ) ;
646
+ if let Some ( exp) = object_size. value ( ) {
647
647
if exp < total_read {
648
648
return Err ( ValidationErr :: TooMuchData ( exp) . into ( ) ) ;
649
649
}
@@ -686,8 +686,7 @@ impl PutObjectContent {
686
686
// Complete the multipart upload.
687
687
let size = parts. iter ( ) . map ( |p| p. size ) . sum ( ) ;
688
688
689
- if object_size. is_known ( ) {
690
- let expected = object_size. as_u64 ( ) . unwrap ( ) ;
689
+ if let Some ( expected) = object_size. value ( ) {
691
690
if expected != size {
692
691
return Err ( ValidationErr :: InsufficientData {
693
692
expected,
0 commit comments