Nextcloudでサイズの大きなファイルの再生時の対応

 

リンク元

nextcloud_root/3rdparty/sabre/http/lib/Sapi.php
にて動画ファイルを処理していることがわかりました。

この中の処理でブラウザからの接続が切れているにもかかわらず処理を抜けない事象を確認しましたので、上記ファイルの117行目

if ($copied <= 0) {

の部分を

if ($copied <= 0 || connection_aborted()) {

に変えることで、ブラウザからの接続が切れた段階でファイルの処理を中止させることができるようになり、無駄なプロセスが動き続けることもなくなりました。
また、ブラウザでの動画の再生開始やシーク動作も非常に速くなります。