当我执行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);
});
});
答案 0 :(得分:0)
接收SNS消息的代码需要向存储桶发送HEAD
请求以获取对象的元数据。此操作的名称类似于SDK中的getObjectMetadata
。
它不包含在事件通知中。
或者您可以编写Lambda函数来接收初始事件,获取元数据,并将所有内容组合到包含您需要的所有内容的新通知消息结构中,然后将其发送回SNS或SQS或直接发送到您的API。 / p>