我有一个Lambda函数,可以为每个上传到我的存储桶的图像创建缩略图,然后将Thumbnail放在另一个存储桶中。当我上传用户图片(个人资料图片)时,我会将用户 ID 和名称作为密钥的一部分:
System-images/users/250/john_doe.jpg
有没有办法在prefix
路径中使用通配符?这是我到目前为止,但它不起作用
答案 0 :(得分:10)
不,你不能 - 这是一个文字的前缀。
在您的示例中,您可以使用这些前缀中的任何一个,具体取决于存储桶中的其他内容(如果存在共享您不想匹配的公共前缀的内容):
System-images/
System-images/users/
答案 1 :(得分:2)
仍然不支持Lambda的前缀/后缀过滤器中的通配符,同时您可以使用它们进行部分过滤,然后在Lambda函数中添加正则表达式完成过滤器。
获取源密钥:
var srcKey = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " "));
检查它是否在用户文件夹中:
if (srcKey.indexOf('/users/') === -1) {
callback('Not inside users folder!');
return;
}