0

waffle lua Web アプリケーションがあり、送信されたビデオ ファイルをいくつかのコマンド ライン ツールを使用して処理する必要があります。

問題は、req.form.file の save 関数の呼び出しが非同期であるため、ファイルが実際に保存される前に実行が続行されることです。

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

そのパスでコマンド ライン ツール ffprobe を呼び出すと、無効なデータを示すエラーが発生します。コンソールで同じコマンドを使用すると、期待どおりに機能します。

私の推測では、ffprobe の呼び出しが実行されたときに、ファイルはまだ保存されていません。

lua waffle アプリでさらにコマンドを実行する前に、ファイルがディスクに書き込まれていることを確認する方法はありますか?

4

1 に答える 1

1

ワッフルモジュールによって提供される非同期メソッドを使用する代わりに、それを行う方法を見つけました。同期的にジョブを実行するビルドイン lua io モジュールを使用しました。

local out = assert(io.open(path, "wb"))
out:write(req.form.file.data)
于 2017-01-12T08:42:00.613 に答える