Goによるファイルアップロード(ランタイムの中の様子)はじめにこんにちは。エウレカ APIチームのジェームスです。 最近Go言語でファイルをアップロードしたりするAPIクライントを作っていて、色々と学ぶことがありました。今回は基本に戻りマルチパートメッセージの仕様を考えながら、標準ライブラリのmime/multipartパッケージでファイルをアップロードする方法を紹介していきます。 全てのコードはサンプルレポジトリにあります。 マルチパートメッセージのおさらいマルチパートメッセージはHTTPのデータ転送に利用されることが多いですが、その定義はもともとSMTPメールのために設計されたMIME規格にあります。そのため、「メッセージ」などの通常HTTPリクエストに対して使わない単語が出たりします。 HTTPの場合は、ファイルのアップロードによく使いますが、「マルチパート」という名の通り複数のパー