GolangにてS3上のデータを取得した後、データ全体をメモリ上に乗せることなく、ストリーミングしながらHTTPレスポンスとして流す方法です。 S3からデータを取得するためのプロキシAPIを構築するようなケースを想定しています。 io.Readerをioutil.ReadAllを用い[]byteに変換した場合、データ全体がメモリ上に乗ってしまうため、数百メガ~数ギガといった巨大なファイルを扱っていると簡単にメモリ不足に陥ります。 そのため、io.Readerのようなstreamを扱う場合は、[]byteへの変換を挟まずにそのままstreamとして扱いio.Writer等に流してしまうほうがメモリ効率が良くなります。 目次 達成出来ること S3上のデータをストリーミングにて取得し、データ全体をメモリ上に乗せることなく、HTTPレスポンスとして返却するプロキシを実装する io.Readerから