benjamin-smith / craft-awscloudfront-private-content
动态创建CloudFront签名URL以保护您的资产。
Requires
- php: >=5.5
- aws/aws-sdk-php: ^3.19
- composer/installers: ~1.0
This package is not auto-updated.
Last update: 2024-09-28 19:36:30 UTC
README
动态创建CloudFront签名URL以保护您的资产。
概览
此插件利用AWS CloudFront API生成签名URL。有关通过AWS CloudFront提供私有内容的概述,请参阅Amazon上的如何指南。
您可以通过以下方式限制对静态资产的访问:
- 在URL上设置过期日期
- 将URL锁定到终端用户的IP地址
要求
- PHP 5.5+
- 一个AWS CloudFront分发,配置为提供私有内容
- CloudFront密钥对私钥文件(AWS文档)
安装
要安装,请按照以下步骤操作
- 使用Composer安装(推荐)
composer require benjamin-smith/craft-awscloudfront-private-content
-OR- 下载并解压缩文件,并将awscloudfront
目录放入您的craft/plugins
目录
-OR- 直接在您的craft/plugins
文件夹中执行git clone https://github.com/benjamin-smith/craft-awscloudfront-private-content.git
。然后您可以使用git pull
更新它
-
将您的CloudFront密钥对私钥放在
craft/storage/awscloudfront/cloudfront.pem
。 -
在Craft控制面板的“设置”>“插件”下安装插件
配置
在craft/config/awscloudfront.php
中创建一个配置文件,包含以下设置
<?php return [ 'awsRegion' => 'us-east-1', 'hostUrl' => 'https://example-distribution.cloudfront.net', 'keyPairId' => 'xxx', ];
然后,在插件设置菜单中创建一个示例“策略”。您可以配置过期时间和是否根据IP地址限制对URL的访问。您可以有多个策略,并为生成的每个URL选择使用哪个策略。
使用
此插件从非签名的CloudFront URL创建签名URL。例如,如果您的资源是
https://example-distribution.cloudfront.net/path/to/file.pdf
您的模板标记将是
{{ craft.awscloudfront.getPrivateUrl('path/to/file.pdf', 'yourPolicyHandle') }}
或者,您可以从自定义插件生成签名URL
craft()->awsCloudfront_privateResource->getPrivateUrl('path/to/content', 'yourPolicyHandle');
路线图
- 与Craft Assets的更紧密集成
- 配置多个CloudFront分发的能力
- 使用签名cookie使内容私有化的能力