@middy/s3-object-response 5.1.0 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +57 -46
- package/package.json +4 -4
package/index.js
CHANGED
|
@@ -1,49 +1,60 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
canPrefetch,
|
|
3
|
+
createPrefetchClient,
|
|
4
|
+
createClient
|
|
5
|
+
// catchInvalidSignatureException
|
|
6
|
+
} from '@middy/util'
|
|
7
|
+
|
|
8
|
+
import { S3Client, WriteGetObjectResponseCommand } from '@aws-sdk/client-s3'
|
|
9
|
+
|
|
3
10
|
const defaults = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
AwsClient: S3Client,
|
|
12
|
+
awsClientOptions: {},
|
|
13
|
+
awsClientAssumeRole: undefined,
|
|
14
|
+
awsClientCapture: undefined,
|
|
15
|
+
disablePrefetch: false
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const s3ObjectResponseMiddleware = (opts = {}) => {
|
|
19
|
+
const options = { ...defaults, ...opts }
|
|
20
|
+
|
|
21
|
+
let client
|
|
22
|
+
if (canPrefetch(options)) {
|
|
23
|
+
client = createPrefetchClient(options)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const s3ObjectResponseMiddlewareBefore = async (request) => {
|
|
27
|
+
const { inputS3Url } = request.event.getObjectContext
|
|
28
|
+
|
|
29
|
+
request.context.s3ObjectFetch = fetch(inputS3Url)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const s3ObjectResponseMiddlewareAfter = async (request) => {
|
|
33
|
+
if (!client) {
|
|
34
|
+
client = await createClient(options, request)
|
|
18
35
|
}
|
|
19
|
-
const s3ObjectResponseMiddlewareBefore = async (request)=>{
|
|
20
|
-
const { inputS3Url, outputRoute, outputToken } = request.event.getObjectContext;
|
|
21
|
-
request.internal.s3ObjectResponse = {
|
|
22
|
-
RequestRoute: outputRoute,
|
|
23
|
-
RequestToken: outputToken
|
|
24
|
-
};
|
|
25
|
-
request.context.s3ObjectFetch = fetch(inputS3Url);
|
|
26
|
-
};
|
|
27
|
-
const s3ObjectResponseMiddlewareAfter = async (request)=>{
|
|
28
|
-
if (!client) {
|
|
29
|
-
client = await createClient(options, request);
|
|
30
|
-
}
|
|
31
|
-
if (request.response.body) {
|
|
32
|
-
request.response.Body = request.response.body;
|
|
33
|
-
delete request.response.body;
|
|
34
|
-
}
|
|
35
|
-
await client.send(new WriteGetObjectResponseCommand({
|
|
36
|
-
...request.internal.s3ObjectResponse,
|
|
37
|
-
...request.response
|
|
38
|
-
}));
|
|
39
|
-
return {
|
|
40
|
-
statusCode: 200
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
return {
|
|
44
|
-
before: s3ObjectResponseMiddlewareBefore,
|
|
45
|
-
after: s3ObjectResponseMiddlewareAfter
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
export default s3ObjectResponseMiddleware;
|
|
49
36
|
|
|
37
|
+
request.response.RequestRoute = request.event.getObjectContext.outputRoute
|
|
38
|
+
request.response.RequestToken = request.event.getObjectContext.outputToken
|
|
39
|
+
|
|
40
|
+
if (request.response.body) {
|
|
41
|
+
request.response.Body = request.response.body
|
|
42
|
+
delete request.response.body
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const command = new WriteGetObjectResponseCommand(
|
|
46
|
+
request.internal.s3ObjectResponse
|
|
47
|
+
)
|
|
48
|
+
await client.send(command) // Doesn't return a promise?
|
|
49
|
+
// .catch((e) => catchInvalidSignatureException(e, client, command))
|
|
50
|
+
|
|
51
|
+
return { statusCode: 200 }
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
before: s3ObjectResponseMiddlewareBefore,
|
|
56
|
+
after: s3ObjectResponseMiddlewareAfter
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export default s3ObjectResponseMiddleware
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@middy/s3-object-response",
|
|
3
|
-
"version": "5.1
|
|
3
|
+
"version": "5.2.1",
|
|
4
4
|
"description": "S3 object response handling middleware for the middy framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
"url": "https://github.com/sponsors/willfarrell"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@middy/util": "5.1
|
|
63
|
+
"@middy/util": "5.2.1"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@aws-sdk/client-s3": "^3.0.0",
|
|
67
|
-
"@middy/core": "5.1
|
|
67
|
+
"@middy/core": "5.2.1",
|
|
68
68
|
"@types/aws-lambda": "^8.10.101",
|
|
69
69
|
"aws-xray-sdk": "^3.3.3"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "4d55da221b9165b4b3e59a12632fd40a149a1e92"
|
|
72
72
|
}
|