【发布时间】:2020-12-18 12:25:58
【问题描述】:
下面的代码是我的代码的一部分。在我的本地机器上,一切都很好。但是,我在 docker 容器中部署了我的代码,它给出了错误 "result": "[Errno 13] Permission denied: path"。还有什么可以在 docker 容器中删除的解决方案?我也试过os.remove(),还是不行。
path = "/mypath/"
output = path + "myfile.pdf"
result_file = open(output, "w+b")
pisa_res = pisa.CreatePDF(
source_html,
dest = result_file)
result_file.close()
with open(output, "rb") as pdf_file:
encoded_string = base64.b64encode(pdf_file.read())
os.system(f"rm -rf {output}")
【问题讨论】:
-
检查执行此代码的用户是否有权删除此文件。听起来像是权限问题。
-
这可能会有所帮助,此外,我建议将 tmpfs 附加到容器或 /tmp 文件夹,这样更易于管理。 stackoverflow.com/questions/42816048/…
-
我不明白你为什么将它保存在文件中,然后再阅读它——你不能没有文件吗?最终您可以使用
io.BytesIO在内存中创建文件,而无需写入磁盘。然后你不必删除它。 -
@EminMastizada 这不是我想要的。
-
@Kroustou 我会检查的
标签: python python-3.x django django-rest-framework docker-compose