まず、Laravelのconfig/filesystems.phpファイルを開き、S3ドライバーの設定を確認します。S3ドライバーが正しく設定されていることを確認してください。
次に、S3プリサインドURLを生成するために、Illuminate\Support\Facades\Storageファサードを使用します。以下のコード例では、例として画像ファイルのプリサインドURLを生成します。
use Illuminate\Support\Facades\Storage;
public function generatePresignedUrl($filePath)
{
$disk = Storage::disk('s3');
$presignedUrl = $disk->temporaryUrl($filePath, now()->addMinutes(30));
return $presignedUrl;
}
上記のコードでは、generatePresignedUrl
メソッドを定義し、引数としてファイルパスを受け取ります。Storage::disk('s3')
を使用して、S3ストレージディスクを取得します。temporaryUrl
メソッドは、ファイルパスと有効期限を指定してプリサインドURLを生成します。上記の例では、URLの有効期限を30分に設定しています。
このメソッドを呼び出すことで、指定したファイルのS3プリサインドURLを取得することができます。
以上が、LaravelでS3プリサインドURLを生成するシンプルで簡単な方法とコード例です。この方法を使用することで、ファイルのアクセス制御を簡単に実現できます。