📜  如何在 laravel Blade 中显示来自 aws s3 的图像 - PHP (1)

📅  最后修改于: 2023-12-03 15:24:14.899000             🧑  作者: Mango

如何在 Laravel Blade 中显示来自 AWS S3 的图像

在 Laravel 的 Blade 模板中,我们可以方便地显示存储在本地服务器上的图像。但是,如果我们要将图像存储在 AWS S3 上,该怎么办呢?本文将介绍如何在 Laravel Blade 中显示来自 AWS S3 的图像。

步骤一:安装 AWS SDK for PHP

要使用 AWS S3 服务,我们需要安装 AWS SDK for PHP。您可以将以下命令添加到 composer.json 文件中:

"require": {
    "aws/aws-sdk-php": "^3.0"
}

运行 composer update 命令,将安装 AWS SDK for PHP。

步骤二:配置 AWS S3

config\filesystems.php 文件中,我们需要配置 AWS S3 驱动器。

's3' => [
    'driver' => 's3',
    'key' => env('AWS_ACCESS_KEY_ID'),
    'secret' => env('AWS_SECRET_ACCESS_KEY'),
    'region' => env('AWS_DEFAULT_REGION'),
    'bucket' => env('AWS_BUCKET'),
],

要使用 AWS S3,我们需要设置以下环境变量:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_DEFAULT_REGION
  • AWS_BUCKET

您可以从 AWS 控制台中获取这些值。

步骤三:上传图像到 AWS S3

在 Laravel 中,我们可以使用 Storage 类上传文件。以下是上传文件的示例代码:

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

public function upload(Request $request)
{
    $file = $request->file('image');
    
    $path = Storage::disk('s3')->put('images', $file, 'public');
    
    return $path;
}

在上述代码中,我们使用 Storage::disk('s3')->put() 方法将文件上传到 AWS S3 上。将文件放在 images 文件夹中,并将其设置为公共可见性。

步骤四:在 Blade 模板中显示图像

要在 Blade 模板中显示来自 AWS S3 的图像,我们需要使用 Storage::disk('s3')->url() 方法获取文件的 URL。以下是示例代码:

<img src="{{ Storage::disk('s3')->url($imagePath) }}" alt="Image">

将文件路径(例如 images/example.jpg)传递给 Storage::disk('s3')->url() 方法,并将返回的 URL 用作图像的 src 属性。

结论

本文介绍了如何在 Laravel Blade 中显示来自 AWS S3 的图像。首先,我们需要安装 AWS SDK for PHP 并配置 AWS S3 驱动器。然后,我们可以使用 Storage 类上传文件到 AWS S3,并使用 Storage::disk('s3')->url() 方法在 Blade 模板中显示图像。