問題の概要
OSS オブジェクトに標準ドメイン名でアクセスした場合、ブラウザがオブジェクトをインライン表示せず、代わりにファイルとしてダウンロードします。
原因
以下の 3 つの条件がすべて満たされた場合に、この動作が発生します。
バケットが 2019 年 9 月 24 日 11 時 00 分 00 秒以降に作成された。
オブジェクトが標準ドメイン名経由でアクセスされた。
オブジェクトのコンテンツタイプが、以下のいずれかである。
image/jpeg image/gif image/tiff image/png image/webp image/svg+xml image/bmp image/x-ms-bmp image/x-cmu-raster image/exr image/x-icon image/heic
これらの条件が満たされると、OSS は応答に以下のヘッダーを追加します。
x-oss-force-download: true
Content-Disposition: attachmentContent-Disposition: attachment ヘッダーは、ブラウザに対して応答をファイルとして保存するよう指示し、インラインでのレンダリングを抑制します。
事例
2019 年 9 月 24 日 11 時 00 分 00 秒以降に作成されたバケットに、apple.jpeg(コンテンツタイプ:image/jpeg)が格納されているとします。このオブジェクトを標準ドメイン名でアクセスすると、以下のような応答が返されます。
GET /apple.jpeg HTTP/1.1
HTTP/1.1 200 OK
Content-Type: image/jpeg
Content-Disposition: attachment
x-oss-force-download: trueContent-Disposition: attachment ヘッダーにより、ブラウザは画像をインライン表示せず、ダウンロードを促すプロンプトを表示します。
ソリューション
オブジェクトへのアクセスには、カスタムドメイン名をご利用ください。設定方法については、「カスタムドメイン名のマッピング」をご参照ください。