fspringveldt / ss-easy-s3
无缝整合资源(包括主题文件夹)以及 css 和 js。启用 CloudFront 只需更改配置。
Requires
- php: >=5.3
- aws/aws-sdk-php: 3.18
- silverstripe/cms: ^3.5
- silverstripe/framework: ^3.5
Requires (Dev)
- fspringveldt/ss-dockerfile: dev-master
This package is auto-updated.
Last update: 2024-09-09 15:14:32 UTC
README
无缝整合资产、主题资产、css 和 js 与 S3 - 可选的 CloudFront CDN。
最低要求
silverstripe/framework: ^3.5.*
silverstripe/cms: ^3.5.*
aws/aws-sdk-php: ^3.18
安装和设置
要安装,请在 SilverStripe 安装根目录下运行以下命令
> composer require fspringveldt/ss-easy-s3
http://你的网站URL?flush=1 一旦 composer 完成,刷新清单。
安装和配置完成后,前往 Amazon,创建一个账户和存储桶。以下是您在过程中可以使用的一些资源。
一旦您的 Amazon 信息设置完毕,您需要从 Amazon 控制台获取以下信息
- 密钥
- 秘密
- 区域
- 存储桶
- URL
- 分发ID
...然后将这些信息输入到您的 mysite 配置文件中
S3Facade: config: dev: key: secret: region: bucket: url: distribution-id: test: key: secret: region: bucket: url: distribution-id: live: key: secret: region: bucket: url: distribution-id:
注意:您可以为每个环境设置多个配置。 简单刷新即可完成设置。
此模块将 自动 重写所有 URL,使其指向您指定的 S3 存储桶或 CloudFront URL 中的资源。
删除本地文件
现在您还可以选择删除本地文件,只保留 S3 中的文件,默认情况下此选项是关闭的。要启用此功能,请按照以下操作进行
- 添加此配置条目
Image: keepLocal: false
- 然后安排名为 RemoveLocalCopies 的任务以适当的间隔运行以删除这些文件。以下是一个示例 cron 条目,将方括号中的所有内容替换为正确值
*/5 * * * * [path-to-php-binary] [path-to-application]/framework/cli-script.php dev/build
在 ubuntu 上的示例: */5 * * * * /usr/bin/php /var/www/example/framework/cli-script.php dev/build
迁移到 S3 构建任务
还有一个方便的工具可以将整个目录快速上传到您的 S3 存储桶。您可以通过添加更多条目到 migrationFolders
属性来指定要上传的目录,该属性默认包含资产文件夹。
与本地环境一起工作
-
下载 证书文件
-
将其复制到
ss-easy-s3/
根目录(假设ss-easy-s3
文件夹位于项目根目录中) -
在
code/classes/S3Facade.php
文件中的setupS3Client()
和setupCloudFrontClient()
方法中添加一些额外的配置$array = array( 'version' => ..., 'region' => ..., 'credentials' => ..., // add these lines 'scheme' => 'http', 'http' => [ 'verify' => '../ss-easy-s3/cacert.pem' ] );
-
刷新页面并测试上传图片(以我的情况为例,使用 CMS 管理员中的
Files
页面)
*注意:您应该禁用所有调试命令,如 Debug::show
和 var_dump()
参考