@@ -26,7 +26,6 @@ export const getSignedUrl = async <
26
26
delete request . headers [ "amz-sdk-request" ] ;
27
27
// User agent header would leak sensitive information
28
28
delete request . headers [ "x-amz-user-agent" ] ;
29
-
30
29
const presigned = await s3Presigner . presign ( request , {
31
30
...options ,
32
31
signingRegion : options . signingRegion ?? context [ "signing_region" ] ,
@@ -42,21 +41,18 @@ export const getSignedUrl = async <
42
41
} as any ;
43
42
} ;
44
43
const middlewareName = "presignInterceptMiddleware" ;
45
- client . middlewareStack . addRelativeTo ( presignInterceptMiddleware , {
44
+ const clientStack = client . middlewareStack . clone ( ) ;
45
+ clientStack . addRelativeTo ( presignInterceptMiddleware , {
46
46
name : middlewareName ,
47
47
relation : "before" ,
48
48
toMiddleware : "awsAuthMiddleware" ,
49
49
override : true ,
50
50
} ) ;
51
51
52
- let presigned : HttpRequest ;
53
- try {
54
- const output = await client . send ( command ) ;
55
- //@ts -ignore the output is faked, so it's not actually OutputType
56
- presigned = output . presigned ;
57
- } finally {
58
- client . middlewareStack . remove ( middlewareName ) ;
59
- }
52
+ const handler = command . resolveMiddleware ( clientStack , client . config , { } ) ;
53
+ const { output } = await handler ( { input : command . input } ) ;
54
+ //@ts -ignore the output is faked, so it's not actually OutputType
55
+ const { presigned } = output ;
60
56
61
57
return formatUrl ( presigned ) ;
62
58
} ;
0 commit comments