@@ -568,50 +568,50 @@ def list_multipart_uploads(
568
568
request : ListMultipartUploadsRequest ,
569
569
) -> ListMultipartUploadsResult :
570
570
571
- try :
572
- response : ListMultipartUploadsResult = call_moto (context )
573
- except NotImplementedError :
574
- # TODO: implement KeyMarker and UploadIdMarker (using sort)
575
- # implement Delimiter and MaxUploads
576
- # see https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
577
- bucket = request ["Bucket" ]
578
- moto_backend = get_moto_s3_backend (context )
579
- multiparts = list (moto_backend .get_all_multiparts (bucket ).values ())
580
- if (prefix := request .get ("Prefix" )) is not None :
581
- multiparts = [upload for upload in multiparts if upload .key_name .startswith (prefix )]
582
-
583
- # TODO: this is taken from moto template, hardcoded strings.
584
- uploads = [
585
- MultipartUpload (
586
- Key = upload .key_name ,
587
- UploadId = upload .id ,
588
- Initiator = {
589
- "ID" : f"arn:aws:iam::{ context .account_id } :user/user1-11111a31-17b5-4fb7-9df5-b111111f13de" ,
590
- "DisplayName" : "user1-11111a31-17b5-4fb7-9df5-b111111f13de" ,
591
- },
592
- Owner = {
593
- "ID" : "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a" ,
594
- "DisplayName" : "webfile" ,
595
- },
596
- StorageClass = StorageClass .STANDARD , # hardcoded in moto
597
- Initiated = datetime .datetime .now (), # hardcoded in moto
598
- )
599
- for upload in multiparts
600
- ]
601
-
602
- response = ListMultipartUploadsResult (
603
- Bucket = request ["Bucket" ],
604
- MaxUploads = request .get ("MaxUploads" ) or 1000 ,
605
- IsTruncated = False ,
606
- Uploads = uploads ,
607
- UploadIdMarker = request .get ("UploadIdMarker" ) or "" ,
608
- KeyMarker = request .get ("KeyMarker" ) or "" ,
571
+ # TODO: implement KeyMarker and UploadIdMarker (using sort)
572
+ # implement Delimiter and MaxUploads
573
+ # see https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
574
+ bucket = request ["Bucket" ]
575
+ moto_backend = get_moto_s3_backend (context )
576
+ # getting the bucket from moto to raise an error if the bucket does not exist
577
+ get_bucket_from_moto (moto_backend = moto_backend , bucket = bucket )
578
+
579
+ multiparts = list (moto_backend .get_all_multiparts (bucket ).values ())
580
+ if (prefix := request .get ("Prefix" )) is not None :
581
+ multiparts = [upload for upload in multiparts if upload .key_name .startswith (prefix )]
582
+
583
+ # TODO: this is taken from moto template, hardcoded strings.
584
+ uploads = [
585
+ MultipartUpload (
586
+ Key = upload .key_name ,
587
+ UploadId = upload .id ,
588
+ Initiator = {
589
+ "ID" : f"arn:aws:iam::{ context .account_id } :user/user1-11111a31-17b5-4fb7-9df5-b111111f13de" ,
590
+ "DisplayName" : "user1-11111a31-17b5-4fb7-9df5-b111111f13de" ,
591
+ },
592
+ Owner = {
593
+ "ID" : "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a" ,
594
+ "DisplayName" : "webfile" ,
595
+ },
596
+ StorageClass = StorageClass .STANDARD , # hardcoded in moto
597
+ Initiated = datetime .datetime .now (), # hardcoded in moto
609
598
)
599
+ for upload in multiparts
600
+ ]
601
+
602
+ response = ListMultipartUploadsResult (
603
+ Bucket = request ["Bucket" ],
604
+ MaxUploads = request .get ("MaxUploads" ) or 1000 ,
605
+ IsTruncated = False ,
606
+ Uploads = uploads ,
607
+ UploadIdMarker = request .get ("UploadIdMarker" ) or "" ,
608
+ KeyMarker = request .get ("KeyMarker" ) or "" ,
609
+ )
610
610
611
- if "Delimiter" in request :
612
- response ["Delimiter" ] = request ["Delimiter" ]
611
+ if "Delimiter" in request :
612
+ response ["Delimiter" ] = request ["Delimiter" ]
613
613
614
- # TODO: add NextKeyMarker and NextUploadIdMarker to response once implemented
614
+ # TODO: add NextKeyMarker and NextUploadIdMarker to response once implemented
615
615
616
616
return response
617
617
0 commit comments