小さな REST API を含むアプリケーションに取り組んでいます。これらのメソッドの 1 つは、PUT 要求で大きな (約 300MB) バイナリ ファイルのアップロードを受け入れる必要があります。
ファイルが非常に大きく、そのような要求が一度に複数実行されるリスクがあるため、要求本文全体をメモリに保持することは避けたいと思います。php://input
ストリームから直接読み取り、それをファイルに吸い上げることでこれを行うことを望んでいました。
ただし、コントローラーのinput()
メソッドが干渉しているようです。ストリームinput()
を読んだらそれはなくなってしまうので、繰り返しアクセスできるように保持しておくという論理的根拠は理解しています。明らかに、これは私がこのインスタンスで回避したい動作です。php://input
input()
ただし、input()
はコントローラー コードが実行される前にどこかで呼び出されているようphp://input
です。
それで、私の質問: CakePHP コントローラが非常に大きなリクエストボディを、最初に全体をメモリにロードせずにディスクにストリーミングする方法はありますか?