2016-10-20 63 views

回答

0

基於這樣的一個代碼,請從鏈接:

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。爲此,我會模擬reqs3.getSignedUrl並測試getSignedUrl是否使用正確的參數調用。我還會添加一個測試,仍然與模擬,以確保返回正確的JSON。

相關問題