
laravel 使用AWS S3
创建桶 (
发布日期:2025-04-04 03:23:17
浏览次数:12
分类:精选文章
本文共 2783 字,大约阅读时间需要 9 分钟。
AWS-S3ترParmis Laravel 应用 中 icioordination خوش scrapy
Tie这个文档主要介绍了使用 AWS-S3 服务并通过 Laravel 应用进行文件上传和删除操作的配置和实现方法。以下内容将帮助您顺利完成相关配置并实现文件的 CRUD 操作。
1. 安装 AWS SDK for Laravel
首先,我们需要通过 Composer 安装 AWS SDK:
composer require aws/aws-sdk-php-laravel
2. 注册 ServiceProvider
接下来,我们需要在 Laravel 的配置文件中注册 AWS 服务提供商。请编辑文件:
/app/config/app.php
在 providers
数组中添加以下内容:
Aws\Laravel\AwsServiceProvider::class,
在 aliases
数组中也添加:
'AWS' => Aws\Laravel\AwsFacade::class,
3. 配置 AWS 概率
完成上述配置后,我们需要在 Laravel 的 AWS 配置文件中(app/config/aws.php
)指定 S3 服务的详细信息。例如:
return [ 'version' => 'latest', 'region' => env('AWS_REGION', 'ap-south-1'), 'endpoint' => env('AWS_ENDPOINT', 'https://sharerabc.s3.ap-south-1.amazonaws.com'), 'use_path_style_endpoint' => true, 'credentials' => [ 'key' => env('AWS_KEY', 'YOUR_AWS_ACCESS_KEY'), 'secret' => env('AWS_SECRET', 'YOUR_AWS_SECRET_KEY'), ], 'Ses' => [ 'region' => env('AWS_SES_REGION', 'ap-south-1'), ],];
4. 设置服务器证书
为了能够使用 AWS 服务,请确保在你的服务器上安装了正确的身份验证凭证文件。通常,文件命名为 credentials
,位于你的用户主目录下:
vim /home/www/.aws/credentials
内容应如下:
[default]aws_access_key_id = YOUR_AWS_ACCESS_KEYaws_secret_access_key = YOUR_AWS_SECRET_KEY[project1]aws_access_key_id = YOUR_AWS_ACCESS_KEYaws_secret_access_key = YOUR_AWS_SECRET_KEY
5. 实现文件上传
我们可以通过 Laravel 途径实现文件上传到 S3 服务的功能。以下是一个示例控制器方法:
public function add(){ $s3Client = AwsFacade::createClient('s3'); $s3_return = $s3Client->putObject([ 'Bucket' => date('Ymd'), 'Key' => time() . '.png', 'Body' => file_get_contents('img/demo.png'), ]); if ($s3_return['@metadata']['statusCode'] == 200) { echo $s3_return['@metadata']['effectiveUri']; } else { echo '上传失败'; }}
6. 实现文件删除
为了删除 S3 中的文件,可以使用 deleteObject
方法。以下是一个示例方法:
public function del(){ $s3Client = AwsFacade::createClient('s3'); $bucket = 'demo'; $s3Client->deleteObjects([ 'Bucket' => $bucket, 'Delete' => [ 'Objects' => [['Key' => '20210208/1612777025.png']], ], ]);}
7. 其他操作
创建桶 (Bucket
)
你可以使用以下代码创建一个新的桶:
$s3Client = AwsFacade::createClient('s3');$s3Client->createBucket(['Bucket' => $bucket['Name']]);
列出桶
列出所有桶的信息可以通过以下方法实现:
$s3Client->listBuckets()['Buckets'];
删除桶
要删除一个桶,首先需要确保该桶是空的。以下是完整的删除逻辑:
$allBuckets = $s3Client->listBuckets()['Buckets'];$excludedBuckets = ['mytestingbucket', 'yedan-school-common'];foreach ($allBuckets as $bucket) { if (!in_array($bucket['Name'], $excludedBuckets)) { $deleteBucketResult = $s3Client->deleteBucket(['Bucket' => $bucket['Name']]); if ($deleteBucketResult['@metadata']['statusCode'] == 200) { echo "桶成功删除"; } else { echo "删除桶失败"; } }}
8. 参考资料
这些内容涵盖了从配置到实际操作的完整流程,帮助您顺利利用 AWS-S3 服务进行文件管理功能。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月17日 20时00分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode 64. 最小路径和(Minimum Path Sum) 20
2025-04-04
Leetcode 76 最小覆盖子串 java版
2025-04-05
LeetCode 96. Unique Binary Search Trees
2025-04-05
LeetCode Add Two Numbers
2025-04-05
LeetCode AutoX 安途智行专场竞赛题解
2025-04-05
LeetCode House Robber
2025-04-05
LeetCode Most Common Word 最常见的词
2025-04-05
Leetcode No.134 **
2025-04-05
LeetCode OJ:Integer to Roman(转换整数到罗马字符)
2025-04-05
LeetCode OJ:Merge k Sorted Lists(归并k个链表)
2025-04-05
leetcode Plus One
2025-04-05
LeetCode shell 题解(全)
2025-04-05
LeetCode Text Justification
2025-04-05
leetcode Valid Parentheses
2025-04-05
Leetcode | Simplify Path
2025-04-05