📅  最后修改于: 2023-12-03 15:39:15.865000             🧑  作者: Mango
在处理来自应用程序用户的图像时,为了避免将图像存储在应用服务器上,我们可以通过使用 Amazon Simple Storage Service (S3) 存储它们。这很有用,因为它可以:
我们需要使用 AWS SDK for PHP 扩展包。您可以使用 composer 安装。
composer require aws/aws-sdk-php
要开始使用 S3,我们需要身份验证凭证。可以从 AWS管理控制台 中生成 AWS Access Key ID 和 AWS Secret Access Key,然后配置 AWS SDK。
现在我们可以配置 SDK,加载身份验证凭据和选择 S3 区域。
use Aws\S3\S3Client;
$s3 = new S3Client([
'version' => 'latest',
'region' => 'your-region',
'credentials' => [
'key' => 'your-access-key', // AWS Access Key ID
'secret' => 'your-secret-access-key', // AWS Secret Access Key
],
]);
现在,我们可以使用存储桶名称和要上传的文件名初始化上传。
use Aws\S3\Exception\S3Exception;
try {
$result = $s3->putObject([
'Bucket' => 'your-bucket-name', // 存储桶名称
'Key' => 'file-name.jpg', // 要上传的文件名
'SourceFile' => '/path/to/image.jpg', // 文件路径
'ContentType' => 'image/jpeg', // 设置 content-type
]);
// 文件已成功上传
echo "File uploaded to S3 successfully.";
} catch (S3Exception $e) {
// 出现错误
echo $e->getMessage();
}
我们可以使用以下代码生成已上传的文件的 URL:
$bucketUrl = 'https://s3-your-region.amazonaws.com';
$fileUrl = $bucketUrl . '/' . 'your-bucket-name' . '/file-name.jpg';
echo $fileUrl; // 打印文件 URL
现在,我们已经成功地将图像存储到 S3。通过使用 S3,我们可以节省服务器资源,并获得可靠的、廉价的存储。如果您需要更多关于 AWS S3 的信息,您可以阅读官方文档。