我有一个简单的 AWS Lambda 函数,它进行 S3.getObject() 调用,如下所示:
const AWS = require('aws-sdk');
AWS.config.logger = console;
const s3 = new AWS.S3();
exports.handler = async (event) => {
return await getObject({
Bucket: "<MY-BUCKET>",
Key: "<MY-KEY>"
}).then( (res) => {
console.log('Retrieved object from S3');
console.log(res);
return res.Body.toString('ascii');
})
};
async function getObject(params){
return await s3.getObject(params).promise();
}
我已按照 this document 启用了记录 SDK 调用。
如何获取所进行的 s3.getObject()
SDK 调用的响应 header ?我基本上是在尝试检索 S3 请求 ID 和扩展请求 ID。
通过“AWS.config.logger = console;”添加的内置记录器该行似乎没有记录响应 header 。我还如何获取 AWS JavaScript SDK 调用的响应 header ?
P.S:如果您能让我知道上面代码中是否需要两个 await
关键字,那就加分了。
最佳答案
监听httpHeaders
事件。
var requestObject = s3.getObject(params);
requestObject.on('httpHeaders', (statusCode, headers, response, statusMessage) => {
// your code here.
});
requestObject.promise()
.then(response => { ... })
关于amazon-web-services - 如何获取 AWS JavaScript SDK 调用的响应 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52314930/