You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测AWS S3的上传启动事件?现有创建完成类通知无法满足需求

AWS S3 上传启动事件检测方案

S3 原生事件通知目前仅支持上传完成类的事件触发,确实没有内置的上传启动事件类型,你可以通过以下两种服务端侧的方案实现需求,无需改造不受控的上传客户端:


方案1:基于 CloudTrail 捕获 API 调用事件(实时性高,推荐)

所有对 S3 的 API 请求都会被 CloudTrail 记录,你可以通过捕获对应上传启动的 API 调用事件触发通知:

  • 分片上传场景:捕获 InitiateMultipartUpload API 调用事件,该接口是分片上传启动时客户端必须调用的第一个接口,调用成功即代表分片上传任务正式启动
  • 单块小文件上传场景:捕获 PutObject API 调用事件,如果你只需要感知大文件的上传启动,可以在后续逻辑中过滤文件大小小于阈值的 PutObject 事件即可

配置流程:

  1. 新建 CloudTrail 跟踪,开启目标 S3 存储桶的数据事件采集权限,仅勾选需要的 InitiateMultipartUpload、PutObject 两类API操作,减少不必要的费用开销
  2. 在 Amazon EventBridge 中配置事件规则,匹配 CloudTrail 上报的对应 API 调用事件,触发你已有的 SNS 主题发送上传启动通知

提示:该方案的事件延迟通常在1分钟以内,可以满足绝大多数实时通知需求


方案2:基于 S3 访问日志做扫描检测(成本低,适合非实时场景)

如果对通知实时性要求不高,可以采用成本更低的日志扫描方案:

  • 开启 S3 存储桶的访问日志功能,上传启动类的请求会生成对应日志条目:分片上传启动对应 REST.POST.UPLOADS 操作,单块上传对应 REST.PUT.OBJECT 操作
  • 配置定时Lambda任务定期扫描最新生成的访问日志,匹配到对应操作条目后触发通知即可

提示:S3 访问日志的写入延迟通常在15分钟到1小时,仅适合对实时性要求不高的场景


补充说明

如果需要过滤无效的启动请求(比如调用分片上传启动后没有上传任何分片、最终任务被取消的场景),可以搭配定时任务调用 ListMultipartUploads 接口扫描存储桶内的活跃分片任务,和已发出的启动通知做关联校验即可。

内容的提问来源于stack exchange,提问作者Rahul Bhooteshwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:39:03