Member Since 3 Years Ago
3,240 experience to go until the next level!
In case you were wondering, you earn Laracasts experience when you:
Earned once you have completed your first Laracasts lesson.
Earned once you have earned your first 1000 experience points.
Earned when you have been with Laracasts for 1 year.
Earned when you have been with Laracasts for 2 years.
Earned when you have been with Laracasts for 3 years.
Earned when you have been with Laracasts for 4 years.
Earned when you have been with Laracasts for 5 years.
Earned when at least one Laracasts series has been fully completed.
Earned after your first post on the Laracasts forum.
Earned once 100 Laracasts lessons have been completed.
Earned once you receive your first "Best Reply" award on the Laracasts forum.
Earned if you are a paying Laracasts subscriber.
Earned if you have a lifetime subscription to Laracasts.
Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.
Earned once you have achieved 500 forum replies.
Earned once your experience points passes 100,000.
Earned once your experience points hits 10,000.
Earned once 1000 Laracasts lessons have been completed.
Earned once your "Best Reply" award count is 100 or more.
Earned once your experience points passes 1 million.
Earned once your experience points ranks in the top 50 of all Laracasts users.
I can fix it with:
$path = Str::After($media->getPath($conversion), 'uploads/'); return Storage::disk('uploads')->response($path);
Not the cleanest implementation, but Spatie Media Library is designed to retrieve Media conversions from the parent Model, not the Media object itself.
Thanks for helping me work through it @phpmick
That does correctly retrieve the the file!
I think I found the issue.
I am using Spatie media library and I am serving a file response through the controller like:
However, the output of $media->getPath('thumb') is "uploads/17/conversions/image-thumb.jpg". So "uploads" is getting included twice.
Started a new Conversation S3 Filesystem: Can't Retrieve Media When "root" Configuration Is Defined
I want to put all files for a certain drive in an 'uploads' folder on my S3 bucket. I define the 'root' parameter in the config and this will save files there correctly. But when I try to retrieve them, I get an exception:
League\Flysystem\FileNotFoundException: File not found at path: uploads/17/conversions/image-thumb.jpg in file /home/vagrant/code/fortress/vendor/league/flysystem/src/Filesystem.php on line 389
My disks config is:
'disks' => [ 'uploads' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'endpoint' => 'https://us-east-1.linodeobjects.com', 'root' => 'uploads/', ], ]
Note that I am retrieving the file with my app in php and then serving it, not trying to access publicly.
Does the "root" parameter not work for S3?