Golang はマルチパートを使用して、大きなファイルを外部 API にアップロードします。 「io.Copy(io.Writer, io.Reader)」の問題を回避する方法

PHPz
リリース: 2024-02-06 09:45:04
転載
922 人が閲覧しました

Golang 使用多部分将大文件上传到外部 API。如何避免`io.Copy(io.Writer, io.Reader)`问题

質問の内容

私の目標は、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!