LaravelのtemporaryUrlでS3から直接ファイルをDLさせるPre-Signed URLを作る方法

Published:

temporaryUrlの説明にはパスと有効期限の引数と書いてありますが、実は第三引数にオプションを設定することができます。 この部分に ResponseContentDispositionを入れてあげれば直接ダウンロードすることが出来るURLを作成することが出来ます。

Storage::cloud()->temporaryUrl(
    $path,
    now()->addHour(),
    [
        'ResponseContentDisposition' => 'attachment; filename='.$filename
    ]
);