如何让提供一个运行用户python代码的api,使得用户写操作的文件保存到指定目录?


#1

现在有个情况是,我有一个服务是用执行用户的python代码, 如果这个用户的代码有写文件的操作,怎么指定文件的写入路径呢?就写到某个文件夹中。
目前已思考解决方案:

  1. 拼接用户传过来的代码
  2. 在docker 中运行代码,运行目录挂载进去,限定运行目录。

#2

你可以再说的具体一点。一般来说,你会在程序里预先写入一个保存文件的基准目录,吧这个路径保存到一个自定义配置变量,然后为每一个用户创建一个单独的文件夹,通常以用户名命名。写文件的时候就可以拼接基准目录+用户文件夹获得保存路径。


#3

类似于Online Compiler 那种, 需要运行每个用户的代码。但是用户的代码是什么样的是未知的。比如 :

with open("../tests.py", "wb") as fp:
    fp.write("...")