不确定它是否在Firebase范围内,但是否在Firebase官方文档中。
我试图实现一个 moderate-image示例,该示例效果很好 https://github.com/firebase/functions-samples/blob/Node-8/moderate-images/functions/index.js
获取模糊图像的下载网址大约需要1分钟。然后我尝试了部分模糊的完全相同的ImageMagick函数:
await spawn('convert', [tempLocalFile, '-region', '10x10+5+5', '-blur', '0x8', tempLocalFile]);
它也可以正常工作,并且花费了时间。
然后,我尝试执行如下操作:
for (const i in regions) await spawn('convert', [tempLocalFile, '-region', i, '-blur', '0x8', tempLocalFile]);
regions
中有8个元素,因此执行了8次转换操作。
在第二分钟,控制台显示Function execution took 60003 ms, finished with status: 'timeout'
。在第9分钟,我收到了具有预期的8个模糊区域的图像。
所以问题是:
答案 0 :(得分:0)
我目前的个人经验表明,您不希望在Function中出现这样的循环。
如果必须执行一些基本的图像操作,则最好在本地进行。
在最坏的情况下,根据操作类型,手动最多执行少于10个操作,这取决于操作类型:
await spawn('convert', [tempLocalFile,
'-region', '100x100+50+50', '-whatever',
'-region', '100x100+50+50', '-whatever',
...
]);
如果我们谈论应用模糊,那么最好将此命令与“ 0x8”左右的选项一起使用。越少,模糊程度就越低,而值越大,整体执行时间就成倍增加。
因此,我能够在功能超时之前收到合法的,看起来部分模糊的输出图像。