📜  删除图像 s3 laravel - PHP (1)

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

删除图像 s3 laravel - PHP

在使用 Laravel 框架时,通常会将静态资源(如图像)存储到 S3 或其他云存储服务中。但是,有时候需要删除 S3 上的图像,本文将介绍如何使用 Laravel 中的 S3 服务来删除图像。

准备工作

在开始之前,您需要做以下准备工作:

  • 确保已经配置好了 S3 服务,并拥有访问密钥和访问密钥 ID。
  • 确定要删除的图像在 S3 上的路径。
删除图像

有两种方法可以删除 S3 上的图像:使用 S3 客户端或使用 Laravel 中的 S3 服务。

使用 S3 客户端

使用 S3 客户端来删除图像,您需要安装 AWS SDK for PHP。以下是删除图像的示例代码:

use Aws\S3\S3Client;

// 创建 S3 客户端
$s3 = new S3Client([
    'version' => 'latest',
    'region' => 'us-east-1',
    'credentials' => [
        'key' => 'YOUR_ACCESS_KEY',
        'secret' => 'YOUR_SECRET_KEY',
    ],
]);

// 删除图像
$bucket = 'YOUR_BUCKET_NAME';
$key = 'path/to/image.jpg';

$result = $s3->deleteObject([
    'Bucket' => $bucket,
    'Key' => $key,
]);

echo "Object deleted: {$result['ObjectURL']}";
使用 Laravel 中的 S3 服务

在 Laravel 中,您可以使用 S3 文件系统驱动程序来删除 S3 上的图像。以下是删除图像的示例代码:

use Illuminate\Support\Facades\Storage;

// 删除图像
$disk = Storage::disk('s3');
$path = 'path/to/image.jpg';

if ($disk->exists($path)) {
    $disk->delete($path);
    echo "Image deleted.";
} else {
    echo "Image not found.";
}

请注意,这里的 s3 表示您在 config/filesystems.php 文件中定义的 S3 文件系统驱动程序。

结论

本文介绍了如何使用 Laravel 中的 S3 服务来删除 S3 上的图像。您可以选择使用 S3 客户端或直接使用 Laravel 的 S3 文件系统驱动程序来完成此任务。