赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 函数计算 FC 3.0
  4. 常见问题
  5. 事件触发FAQ
  6. 文件上传到OSS触发函数执行多次,要如何处理?

文件上传到OSS触发函数执行多次,要如何处理?

  • 事件触发FAQ
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

将文件上传到OSS后发现OSS触发器被多次触发,您需要查看OSS触发器设置的触发事件是否符合预期。

问题原因

OSS触发器被多次触发,可能原因是设置的触发规则中包含通配符,因此单个文件上传过程中产生的多个事件均匹配成功,导致触发了多次函数执行。

例如,您通过分片上传功能上传文件到OSS,这个过程会依次触发oss:ObjectCreated:InitiateMultipartUpload、oss:ObjectCreated:UploadPart和oss:ObjectCreated:CompleteMultipartUpload事件。假如您将OSS触发器的触发事件设置为oss:ObjectCreated:*,通过OSS Browser工具上传一个12 MB的文件,分片大小设置为5 MB,那么您的函数将被触发执行5次。5次触发的事件分别为:

  • oss:ObjectCreated:InitiateMultipartUpload

  • oss:ObjectCreated:UploadPart

  • oss:ObjectCreated:UploadPart

  • oss:ObjectCreated:UploadPart

  • oss:ObjectCreated:CompleteMultipartUpload

所以对于分片上传,触发事件需要设置为oss:ObjectCreated:CompleteMultipartUpload才只会被触发一次。

解决方案

去除匹配规则中的通配符,精确添加所需的事件类型。例如,您可以设置触发器的触发事件为oss:ObjectCreated:PutObject、oss:ObjectCreated:PostObject和oss:ObjectCreated:CompleteMultipartUpload。这三个触发事件覆盖通过以下方式上传文件的情况:

  • oss:ObjectCreated:PutObject:通过简单上传创建或覆盖文件。

  • oss:ObjectCreated:PostObject:通过表单上传创建或覆盖文件。

  • oss:ObjectCreated:CompleteMultipartUpload:完成分片上传。

相关文章

触发器不能正常触发函数执行怎么办? 2025-04-16 14:37

问题现象 触发器无法调用函数执行。

文件上传到OSS触发函数执行多次,要如何处理? 2025-04-16 14:37

将文件上传到OSS后发现OSS触发器被多次触发,您需要查看OSS触发器设置的触发事件是否符合预期。 问题原因 OSS触发器被多次触发,可能原因是设置的触发规则中包含通配符,因此单个文件上传过程中产生的多个事件均匹配成功,导致触发了多次函数执行。

大量事件同时触发函数调用,要如何保证函数可以正常响应? 2025-04-16 14:37

当配置的触发器被大量事件同时触发时,可以通过设置实例并发度及提前预留实例的方式,应对突发流量。 问题背景 例如,您在函数计算配置了OSS触发器,当同时上传N个文件到OSS时,会触发函数执行,需要确保函数可以正常响应。 解决方案

为什么SLS触发器触发函数执行的频次有时高于预期? 2025-04-16 14:37

日志服务SLS的每个Shard在有新的数据写入的情况下都会触发函数执行,所以您看到的触发频次是一个Logstore整体的触发次数。同时当触发发生延迟时触发器会追赶数据,可能会缩短触发间隔。 问题现象 SLS触发器触发函数执行的频次有时高于预期的触发频次。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号