From 1a73912dd986206ae27f4ae4963238691eb2b128 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Sun, 25 Jan 2026 19:45:12 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=92=20Update=20media=20routes=20to=20s?= =?UTF-8?q?upport=20private=20disk=20and=20enhance=20file=20handling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 🗂️ Change default filesystem disk from `local` to `private` in configuration - 📤 Use `Storage::disk` for media download and response functionality - ⚙️ Refactor download and file response logic for improved security and consistency --- config/filesystems.php | 2 +- routes/web.php | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/config/filesystems.php b/config/filesystems.php index 1c6f9e9..bf99557 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -13,7 +13,7 @@ return [ | */ - 'default' => env('FILESYSTEM_DISK', 'local'), + 'default' => env('FILESYSTEM_DISK', 'private'), /* |-------------------------------------------------------------------------- diff --git a/routes/web.php b/routes/web.php index a759d85..c1bb1d2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,21 +3,29 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Session; +use Illuminate\Support\Facades\Storage; use Spatie\MediaLibrary\MediaCollections\Models\Media; Route::redirect('/', '/association/profile'); Route::get('dl/{media}', function (Media $media, Request $request) { - return response()->download($media->getPath(), $media->name); + return Storage::disk($media->disk)->download( + $media->getPathRelativeToRoot(), + $media->file_name + ); }) ->name('dl') ->middleware('signed'); Route::get('media/{media}', function (Media $media, Request $request) { - return response()->file($media->getPath(), [ - 'Content-Type' => $media->mime_type, - 'Cache-Control' => 'private, max-age=3600', - ]); + return Storage::disk($media->disk)->response( + $media->getPathRelativeToRoot(), + $media->file_name, + [ + 'Content-Type' => $media->mime_type, + 'Cache-Control' => 'private, max-age=3600', + ] + ); }) ->name('media.signed') ->middleware('signed');