同步文件保存在 lua waffle 中

Synchronous file save in lua waffle

我有一个 waffle lua 网络应用程序,我需要使用一些命令行工具处理提交的视频文件。

问题是对 req.form.file 上的保存函数的调用是异步的,因此执行会在文件实际保存之前继续进行。

req.form.file:save{path=path}

当我在该路径上调用命令行工具 ffprobe 时,我收到指示无效数据的错误。在控制台中使用相同的命令按预期工作。

我的猜测是当执行对 ffprobe 的调用时文件尚未保存。

在 lua waffle 应用程序中继续执行进一步的命令之前,有没有办法确保将文件写入磁盘?

我找到了一种方法,而不是使用 waffle 模块提供的异步方法,我使用内置的 lua io 模块同步完成工作:

local out = assert(io.open(path, "wb"))
out:write(req.form.file.data)