阿里云函数计算(FC)对文件处理的支持情况
开发查标宝这个商标查询微信小程序的商标代理委托书生成工具时,需要读取模板文件内容,替换标签再将内容存储为一个文件到静态文件目录中,再将该文件的URL返回给商标注册代理或者商标注册人下载。
开发完,本地调试可运行无bug后,照例将这个.Net 6开发的WebApi部署到阿里云的函数计算FC上,结果出现了500错误,查看阿里云函数计算的日志后,发现记录如下:
System.IO.FileNotFoundException: File could not be found /code/wwwroot\template\tpl.docx
at Novacode.DocX.Load(String filename)
红色标记为模板文件的路径,保存再wwwroot这个静态文件目录,错误的含义就是无法找到指定路径的模板文件。
经过检查分析后,个人认为是阿里云的函数计算产品偏向于执行承载计算能力,在用户调用计算函数时,系统将要指定计算的代码复制到临时目录(/code/),执行完之后清空临时目录,所以这个模板文件也就无法找到了。
最终只能将webapi转成.Net 3.1然后部署到西部数码的.Net空间中!