如何在AWS Lambda的Python代码中列出下载后/tmp目录的文件
Python实现AWS Lambda运行时查看/tmp目录内容
以下两种方案都使用Python标准库,无需额外安装依赖,可直接添加在你提供的下载代码片段之后运行:
方案1:使用os模块(全版本兼容)
首先在代码开头导入os模块:import os
之后在下载逻辑后添加如下代码:
# 输出/tmp目录下的全部文件、文件夹名称 tmp_dir_content = os.listdir("/tmp") print("/tmp目录当前所有内容:", tmp_dir_content) # 可选:额外验证目标文件是否下载成功、大小是否正常 target_file = f"/tmp/{original_zip_file_name}" if os.path.isfile(target_file): file_size = os.path.getsize(target_file) print(f"下载的目标文件大小为{file_size}字节") # 可根据实际文件大小加校验逻辑,比如小于10字节判定为下载失败 if file_size < 10: print("目标文件过小,下载异常") sys.exit(1) else: print("目标文件未找到,下载失败") sys.exit(1)
方案2:使用pathlib模块(Python3.4+支持,Lambda默认Python运行时均兼容)
开头导入模块:from pathlib import Path
后续添加代码:
tmp_path = Path("/tmp") # 列出/tmp下所有内容,仅打印名称 all_content = [item.name for item in tmp_path.iterdir()] print("/tmp目录当前所有内容:", all_content) # 校验目标文件 target_path = tmp_path / original_zip_file_name if target_path.is_file(): print(f"目标文件大小:{target_path.stat().st_size}字节") else: print("目标文件不存在,下载失败") sys.exit(1)
注意事项
- AWS Lambda的/tmp目录最大存储空间为512MB,超出容量会触发报错
- Lambda执行环境会被复用,上一次执行写入/tmp的文件会保留到环境销毁,若需要每次执行都使用干净的临时目录,可在下载前添加清理/tmp旧文件的逻辑
内容的提问来源于stack exchange,提问作者user13067694
相关产品推荐
相关产品推荐

