Skip to content

Commit 9b7cb53

Browse files
edits
1 parent 0f6ef36 commit 9b7cb53

File tree

3 files changed

+1711
-613
lines changed

3 files changed

+1711
-613
lines changed

lib/plugins/s3Cache.js

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,59 @@
1-
var s3 = new (require('aws-sdk')).S3({params:{Bucket: process.env.S3_BUCKET_NAME}});
1+
const { S3Client, GetObjectCommand, PutObjectCommand } = require('@aws-sdk/client-s3');
2+
3+
const s3Client = new S3Client({});
4+
const bucketName = process.env.S3_BUCKET_NAME;
25

36
module.exports = {
47

5-
requestReceived: function(req, res, next) {
8+
requestReceived: async function(req, res, next) {
69
if(req.method !== 'GET') {
710
return next();
811
}
912

10-
var key = req.prerender.url;
13+
let key = req.prerender.url;
1114

1215
if (process.env.S3_PREFIX_KEY) {
1316
key = process.env.S3_PREFIX_KEY + '/' + key;
1417
}
1518

16-
s3.getObject({
19+
try {
20+
const command = new GetObjectCommand({
21+
Bucket: bucketName,
1722
Key: key
18-
}, function (err, result) {
19-
20-
if (!err && result) {
21-
return res.send(200, result.Body);
22-
}
23-
23+
});
24+
const result = await s3Client.send(command);
25+
const body = await result.Body.transformToString();
26+
return res.send(200, body);
27+
} catch (err) {
2428
next();
25-
});
29+
}
2630
},
2731

28-
pageLoaded: function(req, res, next) {
32+
pageLoaded: async function(req, res, next) {
2933
if(req.prerender.statusCode !== 200) {
3034
return next();
3135
}
3236

33-
var key = req.prerender.url;
34-
37+
let key = req.prerender.url;
38+
3539
if (process.env.S3_PREFIX_KEY) {
3640
key = process.env.S3_PREFIX_KEY + '/' + key;
3741
}
3842

39-
s3.putObject({
40-
Key: key,
41-
ContentType: 'text/html;charset=UTF-8',
42-
StorageClass: 'REDUCED_REDUNDANCY',
43-
Body: req.prerender.content
44-
}, function(err, result) {
45-
46-
if (err) console.error(err);
43+
try {
44+
const command = new PutObjectCommand({
45+
Bucket: bucketName,
46+
Key: key,
47+
ContentType: 'text/html;charset=UTF-8',
48+
StorageClass: 'REDUCED_REDUNDANCY',
49+
Body: req.prerender.content
50+
});
51+
await s3Client.send(command);
52+
} catch (err) {
53+
console.error(err);
54+
}
4755

48-
next();
49-
});
56+
next();
5057
}
5158
};
5259

0 commit comments

Comments
 (0)