winter / wn-driveraws-plugin
为 WinterCMS 添加 AWS SDK (S3、SQS 队列、DynamoDB、SES 邮件驱动) 支持的驱动器
dev-main
2024-04-23 14:15 UTC
Requires
- aws/aws-sdk-php: ^3.198.1
- league/flysystem-aws-s3-v3: ^3.0
This package is auto-updated.
Last update: 2024-08-23 15:02:21 UTC
README
此插件可以通过 Composer 进行安装。
composer require winter/wn-driveraws-plugin
使用方法
简单地安装并启用此插件应该足以启用对各种 Winter / Laravel 核心功能(例如 s3 文件系统磁盘、sqs 队列、dynamodb 缓存、ses 邮件发送器等)的 AWS 驱动器支持。
此插件还提供了 AWS SDK 之外的一些附加功能,包括
作为邮件发送器的 SES 后端配置
默认情况下,您可以通过将 mail.mailers.* 选项配置为 ses 并在配置文件中提供 services.aws.key、services.aws.secret 和 services.aws.region 配置值来设置 SES 作为邮件传输。此插件还提供了通过后端邮件设置表单配置这些值的能力。
S3 的流式文件上传
注意:此功能需要 Winter v1.2.1 或更高版本。
在处理大文件或无服务器应用程序基础设施时,支持客户端直接上传到 S3(即文件直接从浏览器上传到 S3,而不通过应用程序服务器)可能非常有用。此插件通过自动连接到 FileUpload、MediaManager、RichEditor 和 MarkdownEditor 小部件,并在其各自的磁盘配置设置为 s3 且 stream_uploads 选项设置为 true 时提供直接上传到 S3 的能力。
以下是在 s3 磁盘配置上可设置的其他配置选项
's3' => [ // Default options 'bucket' => env('AWS_BUCKET'), 'driver' => 's3', 'endpoint' => env('AWS_ENDPOINT'), 'key' => env('AWS_ACCESS_KEY_ID'), 'region' => env('AWS_DEFAULT_REGION'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'stream_uploads' => env('AWS_S3_STREAM_UPLOADS', false), 'url' => env('AWS_URL'), 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false) // Additional options used by the StreamS3Uploads functionality: // The lifespan of the signed URL in minutes 'stream_uploads_ttl' => 5, // The max upload size of a single file in bytes, default 128 MB 'stream_uploads_max_size' => 128 * 1024 * 1024, ],
注意:为了使用流上传功能,您的 AWS 凭证需要访问以下 S3 桶上的操作
s3:PutObjects3:PutObjectAcls3:GetObjects3:GetObjectAcls3:DeleteObject
以下是一个应该可以工作的 IAM 策略示例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::my-bucket-name-here"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my-bucket-name-here/*"
]
}
]
}