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

AWS Lambda调用S3 getObject报No such key问题排查求助

排查S3 getObject "No such key" 错误的步骤
  • 检查事件payload的对象键编码问题
    从Lambda日志里扒出事件里的s3.object.key值——这个值是URL编码后的,比如空格会变成%20,特殊字符也会被转码。如果直接把编码后的字符串传给getObject,肯定找不到对象。解决办法是解码:Python用urllib.parse.unquote(key),Node.js用decodeURIComponent(key),其他语言找对应的URL解码方法。

  • 核对对象键的大小写
    S3的对象键是大小写敏感的,比如事件里给的是Video-File.mp4,但实际S3里是video-file.mp4,就会报找不到。直接去S3控制台找到目标对象,复制它的完整键,和你代码里用的对比,确保完全一致。

  • 检查路径的开头斜杠
    S3对象的键是没有开头斜杠的,比如正确的键是prefix/parent-folder/sub-folders/video-File.mp4,如果你的代码里误加了开头的/,传给getObject就会出错。确认你用的键没有多余的开头斜杠。

  • 用控制台生成的命令测试
    去S3控制台找到那个对象,点「操作」→「下载」→「复制CLI命令」,把这个aws s3api get-object命令拿到本地或Lambda测试环境跑。如果能成功下载,对比命令里的--key值和你代码里的键,找差异点。

  • 确认Lambda和S3的区域匹配
    确保Lambda函数部署的区域和S3桶的区域一致。跨区域调用偶尔会有延迟或解析问题,导致找不到对象,尽量让两者在同一个区域。

  • 加个重试逻辑排除写入延迟
    有时候S3的对象创建事件触发时,对象还没完全写入S3。可以在Lambda代码里加个简单的重试:比如调用getObject失败后,间隔1秒再试1-2次,排除这种临时问题。

内容的提问来源于stack exchange,提问作者1raf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 00:04:53