问题描述
我正在使用Microsoft Playwright以便从Azure功能(HTTP触发器)内部的远程网站创建PDF。使用的方法是page.GetPdfAsync(),该方法仅处理文件路径以创建生成的PDF文件。我想将文件存储在Azure Blob存储容器中,但是由于GetPdfAsync()方法不能处理流或Azure Blob存储,因此我试图临时存储生成的文件。我尝试使用其他本地文件夹,例如 / tmp 或 / local ,但是每次触发该功能时,在跟踪中都会看到一个异常,指出文件系统为只读。
我从blog post阅读了Anthony Chu的内容,因此看来Playwright现在在Linux消费计划中受支持,但是在本文中,生成的屏幕截图会直接发送回HTTP响应中,并且从未存储在本地磁盘。
对于编码环境,我正在使用C#,VS 2019和Azure Function Core Tools + Azure CLI进行部署。
有什么想法我该如何处理?
解决方法
Page.GetPdfAsync()
返回一个byte[]
。您可以将null传递到路径,并将生成的byte[]
上载到Azure。