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

如何将AWS S3中近期新增文件的名称同步录入DynamoDB

S3新增文件名同步至DynamoDB实现思路

最优方案:事件驱动架构,天然规避历史文件处理

  • 不需要全量扫描S3桶做比对,仅在新文件上传完成时触发处理逻辑,从根源上跳过所有存量历史文件,实现成本和运行效率都最高
  • 具体落地步骤:
    1. 先创建DynamoDB表,设置主键为S3文件名(如果你的场景下同文件名会上传多个版本,可搭配文件版本号/上传时间戳作为组合主键,按需调整即可)
    2. 创建Lambda处理函数,核心逻辑如下:
      • 解析S3事件通知的payload,提取新增文件的文件名、上传时间等你需要存入的字段
      • 调用DynamoDB的PutItem接口写入数据,建议添加ConditionExpression = attribute_not_exists(你的主键字段名)条件,确保只有主键不存在时才写入,避免极端场景下事件重复触发导致的重复记录
    3. 进入S3控制台bucket1的配置页,添加事件通知规则:触发事件选择对象创建事件(可按需细分选s3:ObjectCreated:Put/s3:ObjectCreated:Post等特定上传场景),触发目标指定为刚才创建的Lambda函数
    4. 配置Lambda的IAM权限:添加S3桶的读权限、DynamoDB表的写权限

可选补充:历史文件补录逻辑

如果后续有需求需要补录指定时间段的历史文件,可单独运行一次性批量任务:

  • 调用S3的list_objects_v2接口,通过时间前缀或者StartAfter参数过滤出需要补录的文件列表
  • 批量调用DynamoDB的BatchWriteItem接口写入,同样带上不存在才写入的条件判断,避免和已有的记录重复

注意事项

  • 如果S3桶开启了版本控制,按需判断是否要将同一个文件的不同版本算作独立记录,调整DynamoDB主键规则即可
  • 可给Lambda配置死信队列,捕获处理失败的事件,避免遗漏新增文件记录
  • 如果单日文件上传量极大,建议提前给DynamoDB开启自动扩缩容,避免写入限流

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:04