是否可以在Python中的Azure Function Linux消费计划中保存临时文件? [英] Is possible to save a temporaly file in a Azure Function Linux Consuption Plan in Python?
问题描述
首先,对不起我的英语.我有一个使用Python的Azure Function Linux消费计划,我需要生成一个html,使用wkhtmltopdf转换为pdf并通过电子邮件发送.
first of all sorry for my English. I have an Azure Function Linux Consuption Plan using Python and I need to generate an html, transform to pdf using wkhtmltopdf and send it by email.
#generate temporally pdf
config = pdfkit.configuration(wkhtmltopdf="binary/wkhtmltopdf")
pdfkit.from_string(pdf_content, 'report.pdf',configuration=config, options={})
#read pdf and transform to Bytes
with open('report.pdf', 'rb') as f:
data = f.read()
#encode bytes
encoded = base64.b64encode(data).decode()
#Send Email
EmailSendData.sendEmail(html_content,encoded,spanish_month)
代码在我的本地开发中可以正常运行,但是当我部署该函数并执行代码时,我收到一条错误消息:
Code is running ok in my local development but when I deploy the function and execute the code I am getting an error saying:
Result: Failure Exception: OSError: wkhtmltopdf reported an error: Loading pages (1/6) [> ] 0% [======> ] 10% [==============================> ] 50% [============================================================] 100% QPainter::begin(): Returned false Error: Unable to write to destination
我认为已报告该错误,因为出于任何原因都没有写许可权.您能帮我解决这个问题吗?
I think that error is reported because for any reason write permission is not available. Can you help me to solve this problem?
谢谢.
推荐答案
tempfile.gettempdir()
方法返回一个临时文件夹,在Linux上为/tmp 代码>
.您的应用程序可以使用此目录存储临时文件,这些临时文件由您的函数在执行期间生成和使用.
The tempfile.gettempdir()
method returns a temporary folder, which on Linux is /tmp
. Your application can use this directory to store temporary files generated and used by your functions during execution.
因此,使用/tmp/report.pdf
作为文件目录来保存临时文件.
So use /tmp/report.pdf
as the file directory to save temporary file.
with open('/tmp/report.pdf', 'rb') as f:
data = f.read()
For more details, you could refer to this article.
这篇关于是否可以在Python中的Azure Function Linux消费计划中保存临时文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!