ファイルのダウンロード機能など作成することがよくあると思いますが、
Chromeだとファイルとしてダウンロードができるのに、Safarだと何故かブラウザ上でダウンロードしたいファイルを展開してしまう。
そんな事ありますよね。
何が必要か
答えをいきなり書くと、 Content-Disposition
ヘッダーが必要。
デフォルト値は inline
(ブラウザでそのまま展開)になっているようです。(MDNによると)
以下のようなパラメータの設定パターンがあります
Content-Disposition: inline Content-Disposition: attachment Content-Disposition: attachment; filename="filename.jpg"
ファイルとしてダウンロードさせ、その際のファイル名を指定する場合には一番下のパラメータがヘッダーに含まれている必要があります。
GCSではどのように設定するのか
こちらの図のように、GCS内に格納されているオブジェクトのメタデータを選択し、 Content-Disposition
に対し必要な項目を入力します。
参考資料
https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Content-Disposition
ではでは。