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:PutObject
s3:PutObjectAcl
s3:GetObject
s3:GetObjectAcl
s3: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/*" ] } ] }