AWS Lambda shutil.move 文件到 /tmp 目录

AWS Lambda shutil.move file to /tmp directory

我有一个 aws lambda,我正在尝试将文件移动到 /tmp 目录,以便 read/write 它们。我知道 /tmp 目录是唯一具有写入权限的目录。我正在尝试移动文件:

for file in os.listdir("/var/task/Files/"):
     shutil.move("/var/task/Files/"+file,"/tmp/")

当我 运行 lambda 时,它给出了以下错误:

    [ERROR] OSError: [Errno 30] Read-only file system: '/var/task/Files/700.in'
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line 13, in lambda_handler
    rs.run()
  File "/var/task/Files/run.py", line 10, in run
    shutil.move("/var/task/Files/"+file,"/tmp/")
  File "/var/lang/lib/python3.8/shutil.py", line 812, in move
    os.unlink(src)

为了正确完成此操作,我是否遗漏了什么?

正如您所说,只有 /tmp 文件系统以读写方式挂载。

     shutil.move("/var/task/Files/"+file,"/tmp/")

您正在尝试修改 /var/task 下的目录以将文件移出。这是一个只读文件系统,所以它会失败。而是复制文件:

     shutil.copy("/var/task/Files/"+file,"/tmp/")