質問: Lambdaを使ってindex.htmlの自動生成について python boto3を使用し、任意のバケットにindex.htmlを生成できました。 しかし、lambdaにより生成したindex.htmlを開くと、ブラウザにて内容が表示されず、ダウンロードされてしまいます。 試しに同じ内容のファイルを手動でアップロードし、同じ動作を行うと、きちんとブラウザにHTMLが表示されます。 アップロードされる経路の違いで、権限等に違いがあるのでしょうか? 上記2種類の経路であげたファイルのプロパティを見比べているのですが違いを見つけ切れません。 ご教授お願い致します。
回答: 管理コンソールからやAWS CLIを利用してのアップロードでは、元ファイルの拡張子を元に自動的に `Content-Type` を付与しますが、Boto3 ではそのような処理がないため、付与する必要があります。 例えば `put_object` を使う場合だと、`ContentType='text/html'` の引数を付与して実行してください。