fspringveldt/ss-easy-s3

此包最新版本(dev-master)没有可用的许可证信息。

无缝整合资源(包括主题文件夹)以及 css 和 js。启用 CloudFront 只需更改配置。

安装数: 4,829

依赖者: 0

推荐者: 0

安全: 0

星标: 6

关注者: 3

分支: 4

公开问题: 3

类型:silverstripe-module

dev-master 2020-07-09 06:39 UTC

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 中的文件,默认情况下此选项是关闭的。要启用此功能,请按照以下操作进行

  1. 添加此配置条目
Image:
    keepLocal: false
  1. 然后安排名为 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 属性来指定要上传的目录,该属性默认包含资产文件夹。

与本地环境一起工作

  1. 下载 证书文件

  2. 将其复制到 ss-easy-s3/ 根目录(假设 ss-easy-s3 文件夹位于项目根目录中)

  3. code/classes/S3Facade.php 文件中的 setupS3Client()setupCloudFrontClient() 方法中添加一些额外的配置

     $array = array(
         'version' => ...,
         'region' => ...,
         'credentials' => ...,
         // add these lines
         'scheme'  => 'http',
         'http'    => [
             'verify' => '../ss-easy-s3/cacert.pem'
         ]
     );
    
  4. 刷新页面并测试上传图片(以我的情况为例,使用 CMS 管理员中的 Files 页面)

*注意:您应该禁用所有调试命令,如 Debug::showvar_dump()

参考