LaravelでS3プリサインドURLを生成する方法


まず、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を生成するシンプルで簡単な方法とコード例です。この方法を使用することで、ファイルのアクセス制御を簡単に実現できます。