PHPでファイル名を指定してS3ストレージから署名付きURL(signedURL)でダウンロードさせる

● PHPでファイル名を指定してS3ストレージから署名付きURL(signedURL)でダウンロードさせる

$s3 = \Storage::disk('s3');
$client = $s3->getDriver()->getAdapter()->getClient();
$new_filename = urlencode( "テストファイル.png" );       // ファイル名を指定
$command = $client->getCommand('GetObject', [
    'Bucket'                        => env('AWS_BUCKET') ,
    'Key'                           => "{$dir}/{$file}" ,
    'ResponseContentDisposition'    => "attachment; filename=\"{$new_filename}\"" , // ファイル名を指定
]);
$expiry = "+10 minutes";
$request = $client->createPresignedRequest($command, $expiry);
$signed_url = (string) $request->getUri();
return redirect( $signed_url );

No.1997
05/17 10:18

edit