byteark / byteark-sdk-php
ByteArk SDK for PHP
v0.2.0
2020-07-13 02:13 UTC
Requires
- php: >=5.4
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-09-13 17:38:45 UTC
README
安装
您可以通过 Composer 安装此 SDK
composer require byteark/byteark-sdk-php
使用 ByteArkV2UrlSigner 类
首先,使用 access_id
和 access_secret
创建一个 ByteArkV2UrlSigner 实例。(对于 ByteArk Fleet,目前 access_id
是可选的)。
然后,调用 sign
方法,传入要签名的 URL、URL 应该过期的 Unix 时间戳和签名选项。
对于签名选项参数,您可以包括 method
,它确定允许哪种 HTTP 方法(如果没有指定,默认为 GET
),并且可以包括在 ByteArk 文档 中出现的自定义策略。
以下示例将创建一个允许在 2018 年 1 月 1 日之前 GET
资源的已签名 URL。
$signer = new \ByteArk\Signer\ByteArkV2UrlSigner([ 'access_id' => '2Aj6Wkge4hi1ZYLp0DBG', 'access_secret' => '31sX5C0lcBiWuGPTzRszYvjxzzI3aCZjJi85ZyB7', ]); $signedUrl = $signer->sign( 'https://example.cdn.byteark.com/path/to/file.png', 1514764800, [ 'method' => 'GET', ] ); /* Output: https://example.cdn.byteark.com/path/to/file.png ?x_ark_access_id=2Aj6Wkge4hi1ZYLp0DBG &x_ark_auth_type=ark-v2 &x_ark_expires=1514764800 &x_ark_signature=OsBgZpn9LTAJowa0UUhlYQ */
HLS 使用示例
在为 HLS 签名 URL 时,您必须选择通用的路径前缀并将其分配给 path_prefix
选项,因为 ByteArk 将自动使用相同的选项和签名为每个片段创建安全的 URL。
例如,如果您的流 URL 是 https://example.cdn.byteark.com/live/playlist.m3u8
,您可以使用 /live/
作为路径前缀。
$signer = new \ByteArk\Signer\ByteArkV2UrlSigner([ 'access_id' => '2Aj6Wkge4hi1ZYLp0DBG', 'access_secret' => '31sX5C0lcBiWuGPTzRszYvjxzzI3aCZjJi85ZyB7', ]); $signedUrl = $signer->sign( 'https://example.cdn.byteark.com/live/playlist.m3u8', 1514764800, [ 'method' => 'GET', 'path_prefix' => '/live/', ] ); echo $signedUrl; /* Output: https://example.cdn.byteark.com/live/playlist.m3u8 ?x_ark_access_id=2Aj6Wkge4hi1ZYLp0DBG &x_ark_auth_type=ark-v2 &x_ark_expires=1514764800 &x_ark_path_prefix=%2Flive%2F &x_ark_signature=7JGsff2mBQEOoSYHTjxiVQ */
选项
ByteArkV2UrlSigner
ByteArkV2UrlSigner.sign(url, expires = null, options = [])
使用 RequestInfo 类
(这对于旧版签名条件很有用,例如 client_ip 和 user_agent)。
创建一个 RequestInfo 实例后,您可以使用 getCurrentUrl
方法来帮助您获取当前 URL,并使用 get
方法获取一些这些策略的值
- client_ip
- user_agent
例如
$requestInfo = new \ByteArk\Request\RequestInfo(); $signer = new \ByteArk\Signer\ByteArkV2UrlSigner([ 'access_id' => '2Aj6Wkge4hi1ZYLp0DBG', 'access_secret' => '31sX5C0lcBiWuGPTzRszYvjxzzI3aCZjJi85ZyB7', ]); $signedUrl = $signer->sign( 'http://inox.qoder.byteark.com/video-objects/QDuxJm02TYqJ/playlist.m3u8', 1514764800, [ 'method' => 'GET', 'path_prefix' => '/video-objects/QDuxJm02TYqJ/', 'referer' => $requestInfo->getCurrentUrl() ] );
示例项目
您可以尝试 示例项目,该项目允许您通过简单的网页表单创建已签名的 URL。