私の目標は、golang の組み込み net/http パッケージを使用して、大きなファイルを POST https:// にアップロードすることです。 somehost /media
。
API 呼び出しの HTTP 形式
リーリーgolang では、これはコードです。
リーリー回避方法io.Copy(io.Writer, io.Reader)
問題
上記のコードは正常に動作しますが、_ 行で errFile3 = io.Copy(part3, file)
となります。これにより、基本的にファイル内のすべてがメイン メモリにコピーされます。
この状況を回避するにはどうすればよいですか?
multipart-formdata
を介して大きなファイルを API にストリーミングする方法はありますか?
プログラムはリモート サーバー上で実行されます。非常に大きなファイルを開くとクラッシュする可能性があります。
io.Pipeとゴルーチンを使用して、ファイル全体をメモリにロードせずに、ファイルをリクエストにコピーします。
リーリー以上がGolang はマルチパートを使用して、大きなファイルを外部 API にアップロードします。 「io.Copy(io.Writer, io.Reader)」の問題を回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。