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

AWS Lambda(Node.js)将S3文件写入本地文件系统的方法咨询

关于AWS Lambda写入S3文件的实现说明

你完全可以直接使用fs.writeFileSync完成文件写入操作,不需要使用所谓的context相关方法,该类方法早已被废弃,标准fs模块操作是官方当前推荐的实现方式。

核心注意事项

  • 路径限制:Lambda运行环境只有/tmp目录具备可写权限,你调用fs.writeFileSync时必须指定写入路径为/tmp下的子路径,写入其他目录会触发权限不足的报错。
  • 存储限制:/tmp目录默认存储上限为512MB,你可以在Lambda函数配置的「临时存储」项中调整上限,最高支持到10GB。
  • 数据生命周期:/tmp目录的数据仅在当前Lambda实例存活期间保留,实例销毁(包括冷启动、函数长时间未调用被回收)时数据会被清空,不要将其作为持久化存储方案,需要长期保留的文件处理完成后建议回存到S3等持久化存储服务。

示例代码

const fs = require('node:fs');
const { S3Client, GetObjectCommand } = require('@aws-sdk/client-s3');

const s3Client = new S3Client({ region: '你的AWS区域' });

exports.handler = async (event) => {
  // 从S3拉取目标文件
  const s3Response = await s3Client.send(new GetObjectCommand({
    Bucket: '你的S3存储桶名称',
    Key: '目标文件在S3中的Key'
  }));
  // 将返回的流式数据转换为Buffer
  const fileContent = Buffer.from(await s3Response.Body.transformToByteArray());
  // 直接写入/tmp目录
  fs.writeFileSync('/tmp/target-file-name', fileContent);

  // 后续可直接通过fs.readFileSync('/tmp/target-file-name')读取文件使用
  return { statusCode: 200, body: '文件写入完成' };
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:39:03