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

为何我的Lambda仅迁移S3中带.zip后缀的对象?技术排查请求

问题分析与解决

Lambda的package type设为zip并非问题根源,Python 3.10环境使用zip格式的Lambda包是完全正常的配置,不会影响对象迁移逻辑。

你遇到的文件夹无法迁移问题,核心在于S3的"文件夹"本质:

  • S3没有真正的目录结构,控制台中创建的"文件夹"实际上是一个key以斜杠结尾的空对象(比如创建test_1文件夹时,实际生成的对象key是test_1/,大小为0)。
  • 你的Lambda触发器配置为"所有对象创建",这个空对象的创建理论上会触发Lambda执行复制操作,但可能出现两种情况让你误以为迁移失败:
    1. 目标桶的控制台不会自动显示空对象对应的"文件夹",除非你手动刷新页面,或者该前缀下有其他实际文件对象。
    2. 如果Lambda没有被触发,可能是触发器的事件过滤规则(如果有的话)排除了这类空对象,或者IAM权限配置存在隐性限制。

排查与修复步骤

  1. 查看Lambda日志:进入CloudWatch控制台,找到该Lambda的日志组,检查创建test_1文件夹时是否有日志输出,确认source_key是否为test_1/,以及复制操作是否返回成功状态。
  2. 验证空对象复制结果:使用AWS CLI直接查询目标桶,确认是否存在test_1/这个空对象:
    aws s3 ls s3://final bucket name/test_1/
    
  3. 调整控制台显示:如果目标桶已存在test_1/空对象,刷新S3控制台页面即可看到对应的"文件夹"。
  4. 批量迁移前缀对象:如果你的需求是迁移某个前缀下的所有对象(而非仅新创建的单个对象),当前的Lambda仅能处理单个对象创建事件,需要配合S3批量操作或添加主动扫描前缀的逻辑到Lambda中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:03:11