GCP+NodeJS环境下Nodemailer生成文件发邮件的问题排查
解决方案
GCP弹性App Engine的实例文件系统是只读的,仅/tmp目录为可写临时存储空间,完全适配临时生成文件再打包发送的场景。只需修改代码中的目录路径为/tmp下的路径即可,无需改动其他业务逻辑:
修改后的代码片段:
const codesFolder = '/tmp/codes'; if (!fs.existsSync(codesFolder)) { fs.mkdirSync(codesFolder); }
注意事项
/tmp目录为每个实例独立拥有,数据不会在实例间共享,实例重启或销毁时数据会自动清除,无需手动清理- 所有涉及文件写入的操作(如生成二维码、创建压缩包)都需指向
/tmp下的路径,确保读写权限正常 - 无需修改现有app.yaml配置,保持原配置即可
内容的提问来源于stack exchange,提问作者Ysr Shk
相关产品推荐
相关产品推荐

