media: PM-Medien privat ausliefern + Vorschau-Signatur (M4, M5, Fix#4/#5)
- Neue PM-Bilder/Anhänge liegen auf der privaten local-Disk; Auslieferung über kontrollierte Media-Routen mit gemeinsamer Zugriffslogik (AuthorizesPressReleaseMediaAccess). Öffentliche Medien werden aus den geladenen Modellen ermittelt (weniger Queries) und länger gecacht. - Anonyme Token-Vorschau lädt Bilder über temporär signierte URLs (Fix#5). - API-Resource baut Variant-URLs über die Media-Route statt /storage (Fix#4). Storage-Schicht prüft zusätzlich den serverseitigen MIME-Type (M5). - press-releases:privatize-media migriert Bestandsmedien. Deployment: einmalig `php artisan press-releases:privatize-media` ausführen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
6e84266f90
commit
6250b0bab4
21 changed files with 588 additions and 70 deletions
|
|
@ -9,6 +9,8 @@ use App\Http\Controllers\Web\LegacyMediaRedirectController;
|
|||
use App\Http\Controllers\Web\NewsroomDetailController;
|
||||
use App\Http\Controllers\Web\NewsroomsController;
|
||||
use App\Http\Controllers\Web\PreiseController;
|
||||
use App\Http\Controllers\Web\PressReleaseAttachmentMediaController;
|
||||
use App\Http\Controllers\Web\PressReleaseImageMediaController;
|
||||
use App\Http\Controllers\Web\ReleaseDetailController;
|
||||
use App\Http\Controllers\Web\ReleaseShareTrackingController;
|
||||
use App\Http\Controllers\Web\ReportFormController;
|
||||
|
|
@ -30,6 +32,17 @@ Route::get('/pm-vorschau/{token}', PressReleasePreviewController::class)
|
|||
->middleware('throttle:30,1')
|
||||
->name('press-releases.preview');
|
||||
|
||||
Route::get('/media/press-release-images/{image}/{variant?}', PressReleaseImageMediaController::class)
|
||||
->whereNumber('image')
|
||||
->where('variant', '[A-Za-z0-9_-]+')
|
||||
->middleware('throttle:600,1')
|
||||
->name('media.press-release-images.show');
|
||||
|
||||
Route::get('/media/press-release-attachments/{attachment}', PressReleaseAttachmentMediaController::class)
|
||||
->whereNumber('attachment')
|
||||
->middleware('throttle:600,1')
|
||||
->name('media.press-release-attachments.show');
|
||||
|
||||
// Gemeinsame Web-Routes für alle Landingpages
|
||||
// Jede Landing-Page hat das gleiche Gerüst, aber unterschiedliches Styling
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue