【问题标题】:How do I get response headers for AWS JavaScript SDK calls?如何获取 AWS JavaScript SDK 调用的响应标头?
【发布时间】:2019-04-24 14:44:51
【问题描述】:

我有一个简单的 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 调用的响应标头?我基本上是在尝试检索 S3 请求 ID 和扩展请求 ID。

通过“AWS.config.logger = console;”添加的内置记录器行似乎没有记录响应标头。我还能如何获取 AWS JavaScript SDK 调用的响应标头?

P.S:如果您可以让我知道我是否需要上面代码中的 两个 await 关键字,则可以加分。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-sdk aws-sdk-js


    【解决方案1】:

    收听httpHeaders事件。

    var requestObject = s3.getObject(params);
    
    requestObject.on('httpHeaders', (statusCode, headers, response, statusMessage) => {
        // your code here.
    });
    
    requestObject.promise()
        .then(response => { ... })
    

    【讨论】:

    猜你喜欢
    • 2013-05-11
    • 2014-03-05
    • 2013-06-19
    • 2016-09-21
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    相关资源
    最近更新 更多