AWS S3 と Content-Type

現在も大変暑いですが、台風が近づいている影響もあるのか、ようやっと
気温が下がる気配が出てきた気がします。
まあ9月中も残暑に苦しめられるのは目に見えていますが、なんとか耐えていきたいですね。

さて、表題の件です。

HTTPヘッダーのパラメータ「Content-Type」には、ファイルの種類が設定されています。
テキストデータなら「text/plain」、zipデータなら「application/zip」といった感じですね。

AWS のストレージサービスである S3 に登録されたファイルにも、この「Content-Type」が
設定されており、ファイルの識別に一役買っています。

ただ、この「Content-Type」なのですが、AWSのコンソールでファイル登録するときは
自動的に適切な値が設定されるので良いのですが、Lambda関数などを使用して自前で登録する場合、
明示的に設定を行わなければなりません。

もし「Content-Type」設定しないでファイル登録を行った場合、自動的に
「application/octet-stream」が設定されてしまいます。

「application/octet-stream」はバイナリ形式のファイルであることを表しており、
この状態だとダウンロード時にファイルの拡張子がおかしくなったり、
画像のつもりで表示しようとしても表示出来なかったりします。

自作のWebページ上でファイルを登録する場合など、
ファイルに相応しいContent-Typeをしっかりと調べて設定するように気を付けましょう。

以上