基於這樣的一個代碼,請從鏈接:
app.get('/sign-s3', (req, res) => {
const s3 = new aws.S3();
const fileName = req.query['file-name'];
const fileType = req.query['file-type'];
const s3Params = {
Bucket: S3_BUCKET,
Key: fileName,
Expires: 60,
ContentType: fileType,
ACL: 'public-read'
};
s3.getSignedUrl('putObject', s3Params, (err, data) => {
if(err){
console.log(err);
return res.end();
}
const returnData = {
signedRequest: data,
url: `https://${S3_BUCKET}.s3.amazonaws.com/${fileName}`
};
res.write(JSON.stringify(returnData));
res.end();
});
});
我會做單元測試,作爲一個完整的集成測試將取決於您的AWS帳號上測試ENV。爲此,我會模擬req
和s3.getSignedUrl
並測試getSignedUrl
是否使用正確的參數調用。我還會添加一個測試,仍然與模擬,以確保返回正確的JSON。