jwriteclub/cdn-auth

授权各种CDN上的Token认证URL

dev-master 2015-11-26 03:55 UTC

This package is auto-updated.

Last update: 2024-08-29 03:37:24 UTC


README

Build Status

这个库提供生成多个CDN上CDN链接的授权令牌的方法。对于本库不支持的原生CDN,我们衷心感谢额外的贡献。

SendFaster 开发和维护。

支持的CDN

  1. Level 3
  2. Highwinds
  3. SendFaster*
  4. MaxCDN*
  5. 所有基于Nginx的CDN

*: 通过Nginx模块。

用法

通常在初始化代码的早期,您应该在您将使用的每种CDN类型上调用 CDN::setProvider(new Provider),传入指定CDN类型的适当提供者。例如,使用 \CDNFaster\Level3CDN::setProvider(new \CDNFaster\StaticLevel3CDNAuthProvider(time()+60, "super_secret")); 来设置Level 3 CDN提供者。

一旦初始化了您计划使用的所有提供者,签名URL就像输入 CDN::signUrl("URL") 一样简单。例如,使用SendFaster CDN作为示例: \CDNFaster\SendFasterCDN::signUrl("http://domain.com/file.mp4")

使用NginX的未知CDN类型

通常,您应该能够使用 NginxBasedCDN 实现,与任何边缘使用Nginx的CDN。您应该探索 setSignatureParamName()setExpirationParamName 以便自定义生成的URL以适应您的CDN特定设置。

在数据库/文件/Etcd中存储CDN凭据

本项目提供了一些非常简单的“静态”认证提供者,它们接受字符串字面量并将它们提供给CDN实现。如果您需要从配置系统或任何其他外部来源提供CDN授权参数,只需实现 ICDNAuthProvider(或适当的扩展版本,例如,为Level3CDN实现 ILevel3CDNAuthProvider)。这些接口提供了一些轻量级的getter,例如 getExpiration()getSecret()。只需实现这些函数,将它们包装到现有的配置管理方案中即可。

需求

PHP: 5.3+

此项目在正常使用情况下不需要任何外部依赖项。要运行单元测试,需要PHPUnit 4+。在PHP 5.3、5.4、5.5和5.6上运行自动测试。此项目可能在较旧版本的PHP上运行,但未进行兼容性测试。

安装

Composer

  • 安装 composer
  • 在您的项目中创建一个 composer.json 文件,其中包含以下片段
    {
      ...
      "require": {
          "jwriteclub/cdn-auth": "dev-master"
      }
      ...
    }
    
  • 在您的 composer.json 文件所在的同一目录中运行 php composer.phar installcomposer install

手动

  • 将源代码检出至您选择的文件夹。
  • 在您的包含中添加以下片段
    require_once("PATH_TO_PROJECT/examples/autoload.php");
    

测试

测试由PHPUnit提供支持。在项目根目录中已正确配置了 phpunit.xml 文件,因此只需从项目根目录运行 phpunit 即可执行测试。

贡献

欢迎对额外CDN或错误修复的贡献。请确保所有贡献都包含相关的测试并提交一个pull request。通过贡献,您接受您代码的MIT许可证,并同意不可撤销地向SendFaster,Inc贡献您的代码。此外,您同意免除SendFaster,Inc及其员工因您贡献的代码中包含的任何专利或版权侵权而承担的任何责任。

许可证

CDN 认证库采用 MIT 许可证 许可。