SNS可以在对象创建事件后将用户元数据传递给休息层吗?

时间:2017-09-14 01:28:17

标签: rest amazon-s3 amazon-sns

当我执行put操作以将新对象添加到s3存储桶时,我需要传递用户元数据。上传文件(创建对象)后,我希望s3:ObjectCreated:put将通知传递给rest api方法调用以进行进一步处理。

我找到了关于如何将用户元数据传递给put操作的文档,但是没有关于如何在将消息发送到其余api方法时使sns消息包含用户元数据的文档。

sns消息是否会自动包含新创建的对象的用户元数据,还是我必须执行一些额外的配置才能实现此目的?

更新:

我应该使用node.js生成这样的头部请求:

       let authString: string = "AWS AKIAIOSFODNN7EXAMPLE:02236Q3V0RonhpaBX5sCYVf1bNRuU=";
        var options = {
            host: 'bucket.s3.amazonaws.com',
            path: '/filename.jpg',
            method: 'HEAD',
            headers: { 'Authorization': authString, 'Date': 'Date: Wed, 28 Oct 2009 22:32:00 GMT' }
        };

        var req = https.request(options, function(res) {
            res.on('data', function(d) {
                process.stdout.write(d);
            });
        });

1 个答案:

答案 0 :(得分:0)

接收SNS消息的代码需要向存储桶发送HEAD请求以获取对象的元数据。此操作的名称类似于SDK中的getObjectMetadata

它不包含在事件通知中。

或者您可以编写Lambda函数来接收初始事件,获取元数据,并将所有内容组合到包含您需要的所有内容的新通知消息结构中,然后将其发送回SNS或SQS或直接发送到您的API。 / p>