当前位置: 首页 > 知识库问答 >
问题:

对 S3 事件通知前缀使用通配符

丁念
2023-03-14

我有一个Lambda函数,它为上传到我的bucket的每个图像创建一个缩略图,然后将缩略图放在另一个bucket中。当我上传用户图像(个人资料图片)时,我使用用户ID和名称作为密钥的一部分:

系统图像/users/250/john_doe.jpg

是否可以在前缀路径中使用通配符?这是我目前所拥有的,但它不起作用

共有2个答案

羊煜
2023-03-14

Lambda的前缀/后缀过滤器中的通配符不受支持,而且永远不会受支持,因为星号(*)是可用于S3对象键名称的有效字符。但是,您可以通过在Lambda函数中添加过滤器来解决此问题。例如:

首先,获取源密钥:

var srcKey = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " "));

然后,检查它是否在< code>users文件夹中:

if (srcKey.indexOf('/users/') === -1) {
    callback('Not inside users folder!');
    return;
}
卢涵畅
2023-03-14

不,你不能——这是一个字面前缀。

在您的示例中,您可以使用这些前缀中的任何一个,具体取决于存储桶中的其他内容(如果有共享公共前缀的内容您不想匹配):

System-images/
System-images/users/
 类似资料:
  • 在调用之前、调用之后、出现异常时,会触发 oninvoke、onreturn、onthrow 三个事件,可以配置当事件发生时,通知哪个类的哪个方法 1。 服务提供者与消费者共享服务接口 interface IDemoService { public Person get(int id); } 服务提供者实现 class NormalDemoService implements IDemo

  • 我使用firebase_消息和Flatter_local_通知包,目前我可以在应用程序处于后台时,在用户点击通知时获取通知数据。当应用程序位于前台时,我如何收听点击事件。

  • 预览默认值 空函数

  • Weex 提供了通过事件触发动作的能力,例如在用户点击组件时执行 JavaScript。下面列出了可被添加到 Weex 组件上以定义事件动作的属性: 事件穿透 注意 Android和iOS下原生事件传递机制不同,这里仅针对iOS 当一个父View存在多个同级子View时,由于iOS会选择层级最高的View来响应事件,底层的View的事件永远都不会响应。 Weex在<div>组件中增加了eventP

  • 我正在学习TF并尝试应用一个架构体系来创建: 一个简单的lambda函数 一个SNS话题 让lambda订阅SNS主题 以一定间隔向主题发布消息的Cloud Watch事件 一个Cloud Watch日志组,用于检查lambda是否收到SNS的通知 允许来自SNS的调用的lambda权限 我能够成功地应用它。基础架构看起来非常好(当我通过可视化aws控制台自己创建时,它具有相同的方面) 但云观察事

  • 在sentinel中,如果出现warning以上级别的事件发生, 是可以通过如下配置进行脚本调用的(对于该脚本redis启动用户需要有执行权限): sentinel notification-script mymaster /redis/script/notify.py 比如说,我们希望在发生这些事件的时候进行邮件通知,那么,notify.py就是一个触发邮件调用的东东,传入第一个参数为事件类型,