問題の説明
ブラウザから OSS の標準ドメイン名を使用して画像オブジェクトにアクセスすると、ブラウザがそのオブジェクトを表示せずにダウンロードします。
原因
この動作は、2019 年 9 月 23 日 17: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 月 23 日 17:00:00 以降に作成されたバケットに、apple.jpeg という名前のオブジェクトがあり、そのコンテンツタイプは image/jpeg です。このオブジェクトにブラウザから標準ドメイン名でアクセスすると、OSS は次の応答を返します。
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 ヘッダーにより、ブラウザはファイルをダウンロードします。
ソリューション
オブジェクトにアクセスする際は、カスタムドメイン名を使用してください。カスタムドメイン名経由でアクセスした場合、OSS は x-oss-force-download ヘッダーや Content-Disposition: attachment ヘッダーを追加しないため、ブラウザは画像を直接表示します。
ご利用のバケットにカスタムドメイン名をバインドする方法については、「カスタムドメイン名のマッピング」をご参照ください。