From 5bfe8c5a979b4ecfb8112cac180936df0911e339 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Fri, 7 Oct 2016 14:39:05 +0100 Subject: [PATCH] Correctly add photos to S3 --- app/Http/Controllers/NotesController.php | 8 +++++--- app/Services/NoteService.php | 2 +- config/laravel-medialibrary.php | 21 ++++++++++++++++++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/NotesController.php b/app/Http/Controllers/NotesController.php index 5b795a30..dda192ec 100644 --- a/app/Http/Controllers/NotesController.php +++ b/app/Http/Controllers/NotesController.php @@ -141,10 +141,12 @@ class NotesController extends Controller $note->placeLink = '/places/' . $note->place->slug; } - $note->photoURLs = []; - foreach ($note->getMedia() as $photo) { - $note->photoURLs[] = $photo->getUrl(); + $photoURLs = []; + $photos = $note->getMedia(); + foreach ($photos as $photo) { + $photoURLs[] = $photo->getUrl(); } + $note->photoURLs = $photoURLs; return view('singlenote', [ 'note' => $note, diff --git a/app/Services/NoteService.php b/app/Services/NoteService.php index cb5bdc10..53edee74 100644 --- a/app/Services/NoteService.php +++ b/app/Services/NoteService.php @@ -64,7 +64,7 @@ class NoteService if ($request->hasFile('photo')) { $files = $request->file('photo'); foreach ($files as $file) { - $note->addMedia($file)->toMediaLibrary('images', 's3'); + $note->addMedia($file)->toCollectionOnDisk('images', 's3'); } } diff --git a/config/laravel-medialibrary.php b/config/laravel-medialibrary.php index c6abd4c5..9a85c547 100644 --- a/config/laravel-medialibrary.php +++ b/config/laravel-medialibrary.php @@ -29,7 +29,12 @@ return [ * When urls to files get generated this class will be called. Leave empty * if your files are stored locally above the site root or on s3. */ - 'custom_url_generator_class' => '', + 'custom_url_generator_class' => null, + + /* + * The class that contains the strategy for determining a media file's path. + */ + 'custom_path_generator_class' => null, 's3' => [ /* @@ -37,4 +42,18 @@ return [ */ 'domain' => env('AWS_S3_URL'), ], + + 'remote' => [ + /** + * Any extra headers that should be included when uploading media to + * a remote disk. Even though supported headers may vary between + * different drivers, a sensible default has been provided. + * + * Supported by S3: CacheControl, Expires, StorageClass, + * ServerSideEncryption, Metadata, ACL, ContentEncoding + */ + 'extra_headers' => [ + 'CacheControl' => 'max-age=604800', + ] + ], ];