How to get images from AWS s3 and display in Laravel blade

Created at 08-Feb-2022 , By samar

How to get images from AWS s3 and display in Laravel blade

Through many examples, we will learn how to resolve the "How to get images from AWS s3 and display in Laravel blade".

You can get images from AWS s3 and display them in the Laravel blade. You have to pass the object key (image path) with s3 bucket name to getCommand method and create the presigned URL to get the image and return the presigned URL to Laravel blade to display the image.
  • Get image from AWS s3 using presigned url and display in Laravel blade

    //routes\web.php
    use Illuminate\Support\Facades\Storage;
    
    Route::get('/get-s3-document', function(){
    
        //For example your path to file or object key ($key) will look like the following. 
        //You can get it dynamically by storing the key to the database table while uploading document in AWS s3.
        $key = 'project/documents/file.jpg';
        $client = Storage::disk('s3')->getDriver()->getAdapter()->getClient();
        $bucket = env('AWS_BUCKET');
        
        $command = $client->getCommand('GetObject', [
            'Bucket' => $bucket,
            'Key' => $key
        ]);
        $request = $client->createPresignedRequest($command, '+20 minutes');
        $presignedUrl = (string)$request->getUri();
        return view('welcome')->with('document_url', $presignedUrl);
        
    });
    
    //resources\views\welcome.blade.php
    <embed src="{{ $document_url }}">
    

    You can get the key of the object after clicking on the object inside the folder in the AWS s3 console dashboard. You can also store the key of the object in the table and get the key to pass to getCommand method to get the image from AWS s3.

    Additional Notes:

    Import Storage Facades

    use Illuminate\Support\Facades\Storage;
    //.env
    AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
    AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    AWS_DEFAULT_REGION=XX-XXXXXXXXX-X
    AWS_BUCKET=XXXXXXXXXXXX

Back to code snippet queries related laravel

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Buy Me A Coffee

Don't forget to share this article! Help us spread the word by clicking the share button below.

We appreciate your support and are committed to providing you valuable and informative content.

We are thankful for your never ending support.