benjamin-smith/craft-awscloudfront-private-content

该软件包最新版本(v1.0.0)没有提供许可证信息。

动态创建CloudFront签名URL以保护您的资产。

v1.0.0 2016-09-06 13:14 UTC

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文档

安装

要安装,请按照以下步骤操作

  1. 使用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更新它

  1. 将您的CloudFront密钥对私钥放在craft/storage/awscloudfront/cloudfront.pem

  2. 在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使内容私有化的能力