添加网站文件

This commit is contained in:
2025-12-22 13:59:40 +08:00
commit 117aaf83d1
19468 changed files with 2111999 additions and 0 deletions

10
vendor/qiniu/php-sdk/examples/README.md vendored Normal file
View File

@@ -0,0 +1,10 @@
# examples
这些 examples 旨在帮助你快速了解使用七牛的 SDK。这些 demo 都是可以直接运行的, 但是在运行之前需要填上您自己的参数。
比如:
* `$bucket` 需要填上您想操作的 [bucket名字](https://portal.qiniu.com/kodo/bucket)。
* `$accessKey``$secretKey` 可以在我们的[管理后台](https://portal.qiniu.com/user/key)找到。
* 在进行`视频转码` `压缩文件`等异步操作时 需要使用到的队列名称也可以在我们[管理后台](https://portal.qiniu.com/dora/media-gate/pipeline)新建。

View File

@@ -0,0 +1,36 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 存储空间 - 新增生命周期规则
// 参考文档https://developer.qiniu.com/kodo/manual/3699/life-cycle-management
$bucket = 'xxxx'; // 存储空间名称
$name = 'demo'; // 生命周期规则名称
$prefix = 'test'; // 规则策略中的前缀
$delete_after_days = 80; // 用户新创建的文件将在该设定时间之后自动删除
$to_line_after_days = 70; // 用户新创建的文件将在该设定的时间之后自动转为低频存储
list($ret, $err) = $bucketManager->bucketLifecycleRule(
$bucket,
$name,
$prefix,
$delete_after_days,
$to_line_after_days
);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,41 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Cdn\CdnManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$cdnManager = new CdnManager($auth);
// 获取流量和带宽数据
// 参考文档https://developer.qiniu.com/fusion/api/1230/traffic-bandwidth
$domains = array(
"javasdk.qiniudn.com",
"phpsdk.qiniudn.com"
);
$startDate = "2020-08-03";
$endDate = "2020-08-05";
// 5min or hour or day
$granularity = "day";
list($bandwidthData, $getBandwidthErr) = $cdnManager->getBandwidthData(
$domains,
$startDate,
$endDate,
$granularity
);
if ($getBandwidthErr != null) {
var_dump($getBandwidthErr);
} else {
echo "get bandwidth data success\n";
print_r($bandwidthData);
}

View File

@@ -0,0 +1,35 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use \Qiniu\Cdn\CdnManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$cdnManager = new CdnManager($auth);
// 获取流量和带宽数据
// 参考文档https://developer.qiniu.com/fusion/api/1230/traffic-bandwidth
$domains = array(
"javasdk.qiniudn.com",
"phpsdk.qiniudn.com"
);
$startDate = "2020-08-03";
$endDate = "2020-08-05";
//5min or hour or day
$granularity = "day";
list($fluxData, $getFluxErr) = $cdnManager->getFluxData($domains, $startDate, $endDate, $granularity);
if ($getFluxErr != null) {
var_dump($getFluxErr);
} else {
echo "get flux data success\n";
print_r($fluxData);
}

View File

@@ -0,0 +1,31 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Cdn\CdnManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$cdnManager = new CdnManager($auth);
// 获取日志下载链接
// 参考文档https://developer.qiniu.com/fusion/api/1226/download-the-log
$domains = array(
"javasdk.qiniudn.com",
"phpsdk.qiniudn.com"
);
$logDate = '2020-08-05';
list($logListData, $getLogErr) = $cdnManager->getCdnLogList($domains, $logDate);
if ($getLogErr != null) {
var_dump($getLogErr);
} else {
echo "get cdn log list success\n";
print_r($logListData);
}

View File

@@ -0,0 +1,46 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Cdn\CdnManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$cdnManager = new CdnManager($auth);
// 查询 CDN 预取记录
// 参考文档https://developer.qiniu.com/fusion/api/1227/file-prefetching#4
$requestId = null; // 指定要查询记录所在的刷新请求id
// 要查询的url列表
$urls = array(
"http://sdk.peterpy.cn/sdktest.png",
"http://sdk.peterpy.cn/qiniulogo.png"
);
$state = 'success'; // 指定要查询记录的状态,取值 processingsuccessfailure
$pageNo = 0; // 要求返回的页号默认为0
$pageSize = 100; // 要求返回的页长度默认为100
$startTime = '2020-09-11 12:00:00'; // 指定查询的开始日期格式2006-01-01
$endTime = '2020-09-20 21:00:00'; // 指定查询的结束日期格式2006-01-01
list($ret, $err) = $cdnManager->getCdnPrefetchList(
$requestId,
$urls,
$state,
$pageNo,
$pageSize,
$startTime,
$endTime
);
echo "\n====> query prefetch list: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,48 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Cdn\CdnManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$cdnManager = new CdnManager($auth);
// 查询 CDN 刷新记录
// 参考文档https://developer.qiniu.com/fusion/api/1229/cache-refresh#4
$requestId = 'xxxxxx'; // 指定要查询记录所在的刷新请求id
$isDir = 'no'; // 指定是否查询目录取值为yes/no默认不填则为两种类型记录都查询
// 要查询的url列表每个url可以是文件url也可以是目录url
$urls = array(
"http://sdk.peterpy.cn/sdktest.png",
"http://sdk.peterpy.cn/qiniulogo.png"
);
$state = 'success'; // 指定要查询记录的状态,取值 processingsuccessfailure
$pageNo = 0; // 要求返回的页号默认为0
$pageSize = 100; // 要求返回的页长度默认为100
$startTime = '2020-09-11 12:00:00'; // 指定查询的开始日期格式2006-01-01
$endTime = '2020-09-20 21:00:00'; // 指定查询的结束日期格式2006-01-01
list($ret, $err) = $cdnManager->getCdnRefreshList(
$requestId,
$isDir,
$urls,
$state,
$pageNo,
$pageSize,
$startTime,
$endTime
);
echo "\n====> query refresh list: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,59 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Cdn\CdnManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
//---------------------------------------- demo1 ----------------------------------------
// 刷新文件和目录
// 文件列表一次最多提交 60 个,目录一次最多提交 10 个
// 参考文档https://developer.qiniu.com/fusion/api/1229/cache-refresh
$urls = array(
"http://phpsdk.qiniudn.com/qiniu.jpg",
"http://phpsdk.qiniudn.com/qiniu2.jpg",
);
$dirs = array(
"http://phpsdk.qiniudn.com/test/"
);
$cdnManager = new CdnManager($auth);
// 如果刷新返回 400038 报错则需要联系七牛技术支持开通刷新目录权限参考https://developer.qiniu.com/fusion/api/1229/cache-refresh
list($refreshResult, $refreshErr) = $cdnManager->refreshUrlsAndDirs($urls, $dirs);
if ($refreshErr != null) {
var_dump($refreshErr);
} else {
echo "refresh request sent\n";
print_r($refreshResult);
}
//---------------------------------------- demo2 ----------------------------------------
// 刷新文件
list($refreshResult, $refreshErr) = $cdnManager->refreshUrls($urls);
if ($refreshErr != null) {
var_dump($refreshErr);
} else {
echo "refresh urls request sent\n";
print_r($refreshResult);
}
//---------------------------------------- demo3 ----------------------------------------
// 刷新目录
list($refreshResult, $refreshErr) = $cdnManager->refreshDirs($dirs);
if ($refreshErr != null) {
var_dump($refreshErr);
} else {
echo "refresh dirs request sent\n";
print_r($refreshResult);
}

View File

@@ -0,0 +1,20 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Cdn\CdnManager;
// 创建带时间戳防盗链的 URL
// 参考文档https://developer.qiniu.com/fusion/manual/3841/timestamp-hotlinking-prevention-fusion
$encryptKey = 'your_domain_timestamp_antileech_encryptkey';
// 一定要带访问协议,也就是 http:// 或者 https://
$url1 = 'http://phpsdk.qiniuts.com/24.jpg?imageInfo';
$url2 = 'http://phpsdk.qiniuts.com/24.jpg';
// 有效期时间(单位秒)
$durationInSeconds = 3600;
$signedUrl = CdnManager::createTimestampAntiLeechUrl($url1, $encryptKey, $durationInSeconds);
print($signedUrl);

View File

@@ -0,0 +1,42 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\ArgusManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$argusManager = new ArgusManager($auth, $config);
// 图片内容审核
// 参考文档https://developer.qiniu.com/censor/api/5588/image-censor
$body = '{
"data":{
"uri":"https://www-static.qbox.me/_next/static/media/pic01.c8b5db2cc5fcb6fc4e6349c9e37c8e6b.png"
},
"params":{
"scenes":[
"pulp",
"terror",
"politician",
"ads"
]
}
}';
list($ret, $err) = $argusManager->censorImage($body);
echo "\n====> Result is: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,52 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\ArgusManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$argusManager = new ArgusManager($auth, $config);
// 视频内容审核
// 参考文档https://developer.qiniu.com/censor/api/5620/video-censor
$body = '{
"data":{
"uri":"https://dn-mars-assets.qbox.me/Fi1UC6waXtXYCpnTGHa8XxIziGNk"
},
"params":{
"scenes":[
"pulp",
"terror",
"politician",
"ads"
]
}
}';
list($jobid, $err) = $argusManager->censorVideo($body);
echo "\n====> Result is: \n";
if ($err !== null) {
var_dump($err);
} else {
echo "job_id is: $jobid\n";
}
// 查询视频审核结果
list($ret, $err) = $argusManager->censorStatus($jobid);
echo "\n====> job status: \n";
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 删除指定的 Bucket
// 1、空间绑定了自定义域名禁止删除需要先解绑域名
// 2、空间不为空禁止删除需要先把空间内的文件删除完毕
$bucket = 'xxxx'; // 存储空间名称
list($ret, $err) = $bucketManager->deleteBucket($bucket);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,28 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 删除 bucket 事件通知规则
// 参考文档https://developer.qiniu.com/kodo/manual/6095/event-notification
$bucket = 'xxxx'; // 存储空间名称
$name = 'demo'; // 规则名称 bucket 内唯一,由 1 ~ 50 个字符组成,可包含:字母、数字和下划线
list($ret, $err) = $bucketManager->deleteBucketEvent($bucket, $name);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 删除存储空间 - 生命周期规则
// 参考文档https://developer.qiniu.com/kodo/manual/3699/life-cycle-management
$bucket = 'xxxx'; // 存储空间名称
$name = 'demo'; // 生命周期规则名称
list($ret, $err) = $bucketManager->deleteBucketLifecycleRule($bucket, $name);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 获取存储空间 - 事件通知规则
// 参考文档https://developer.qiniu.com/kodo/manual/6095/event-notification
$bucket = 'xxxx'; // 存储空间名称
list($ret, $err) = $bucketManager->getBucketEvents($bucket);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 获取存储空间 - 生命周期规则
// 参考文档https://developer.qiniu.com/kodo/manual/3699/life-cycle-management
$bucket = 'xxxx'; // 存储空间名称
list($ret, $err) = $bucketManager->getBucketLifecycleRules($bucket);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 列举空间,返回 bucket 列表
// 存储区域参考文档https://developer.qiniu.com/kodo/manual/1671/region-endpoint
$region = 'z1'; // 华东z0华北z1华南z2北美na0东南亚as0
list($ret, $err) = $bucketManager->listbuckets($region);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 获取用户 bucket 配额限制
// size 表示空间存储量配额count 表示空间文件数配额,新创建的空间默认没有限额
$bucket = 'xxxx'; // 存储空间名称
list($ret, $err) = $bucketManager->getBucketQuota($bucket);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,25 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 获取指定空间的相关信息
$bucket = 'xxxx'; // 存储空间名称
list($ret, $err) = $bucketManager->bucketInfo($bucket);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 获取指定 zone存储区域的空间信息列表
// 存储区域参考文档https://developer.qiniu.com/kodo/manual/1671/region-endpoint
$region = 'z1'; // 华东z0华北z1华南z2北美na0东南亚as0
list($ret, $err) = $bucketManager->bucketInfos($region);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 获取 bucket 设置的跨域信息
// 参考文档https://developer.qiniu.com/kodo/manual/6094/set-cors
$bucket = 'xxxx'; // 存储空间名称
list($ret, $err) = $bucketManager->getCorsRules($bucket);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,74 @@
<?php
require_once __DIR__ . '/../autoload.php';
// 引入图片处理类
use Qiniu\Processing\ImageUrlBuilder;
$imageUrlBuilder = new ImageUrlBuilder();
// 要处理的图片
$url = 'http://78re52.com1.z0.glb.clouddn.com/resource/gogopher.jpg';
$url2 = 'http://78re52.com1.z0.glb.clouddn.com/resource/gogopher.jpg?watermark/1/gravity/SouthEast/dx/0/dy/0/image/'
. 'aHR0cDovL2Fkcy1jZG4uY2h1Y2h1amllLmNvbS9Ga1R6bnpIY2RLdmRBUFc5cHZZZ3pTc21UY0tB';
$waterImage = 'http://developer.qiniu.com/resource/logo-2.jpg';
/**
* 缩略图链接拼接
*
* @param string $url 图片链接
* @param int $mode 缩略模式
* @param int $width 宽度
* @param int $height 长度
* @param string $format 输出类型 [可选]
* @param int $quality 图片质量 [可选]
* @param int $interlace 是否支持渐进显示 [可选]
* @param int $ignoreError 忽略结果 [可选]
* @return string
* @link http://developer.qiniu.com/code/v6/api/kodo-api/image/imageview2.html
* @author Sherlock Ren <sherlock_ren@icloud.com>
*/
$thumbLink = $imageUrlBuilder->thumbnail($url, 1, 100, 100);
// 函数方式调用 也可拼接多个操作参数 图片+水印
$thumbLink2 = \Qiniu\thumbnail($url2, 1, 100, 100);
var_dump($thumbLink, $thumbLink2);
/**
* 图片水印
*
* @param string $url 图片链接
* @param string $image 水印图片链接
* @param int $dissolve 透明度 [可选]
* @param string $gravity 水印位置 [可选]
* @param int $dx 横轴边距 [可选]
* @param int $dy 纵轴边距 [可选]
* @param int $watermarkScale 自适应原图的短边比例 [可选]
* @link https://developer.qiniu.com/dora/api/1316/image-watermarking-processing-watermark
* @return string
* @author Sherlock Ren <sherlock_ren@icloud.com>
*/
$waterLink = $imageUrlBuilder->waterImg($url, $waterImage);
// 函数调用方法
//$waterLink = \Qiniu\waterImg($url, $waterImage);
var_dump($waterLink);
/**
* 文字水印
*
* @param string $url 图片链接
* @param string $text 文字
* @param string $font 文字字体
* @param string $fontSize 文字字号
* @param string $fontColor 文字颜色 [可选]
* @param int $dissolve 透明度 [可选]
* @param string $gravity 水印位置 [可选]
* @param int $dx 横轴边距 [可选]
* @param int $dy 纵轴边距 [可选]
* @link http://developer.qiniu.com/code/v6/api/kodo-api/image/watermark.html#text-watermark
* @return string
* @author Sherlock Ren <sherlock_ren@icloud.com>
*/
$textLink = $imageUrlBuilder->waterText($url, '你瞅啥', '微软雅黑', 300);
// 函数调用方法
// $textLink = \Qiniu\waterText($url, '你瞅啥', '微软雅黑', 300);
var_dump($textLink);

View File

@@ -0,0 +1,18 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Processing\PersistentFop;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$config->useHTTPS=true;
// 初始化
$pfop = new PersistentFop($auth, $config);

View File

@@ -0,0 +1,19 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Processing\PersistentFop;
$pfop = new Qiniu\Processing\PersistentFop(null, null);
// 通过 persistentId 来主动查询持久化处理(prefop)的执行状态
// 参考文档https://developer.qiniu.com/dora/api/1294/persistent-processing-status-query-prefop
// 触发持久化处理后返回的 persistentId
$persistentId = 'z2.01z201c4oyre6q1hgy00murnel0002nh';
list($ret, $err) = $pfop->status($persistentId);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,58 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Processing\PersistentFop;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
// 将七牛存储空间中的资源进行批量压缩
// 参考文档https://developer.qiniu.com/dora/api/1667/mkzip
// 要压缩的文件所在的空间和文件名
$bucket = getenv('QINIU_TEST_BUCKET');
$key = 'qiniu.png';
// 用户默认没有私有队列,需要在这里创建然后填写 https://portal.qiniu.com/dora/media-gate/pipeline
$pipeline = 'sdktest';
$pfop = new PersistentFop($auth, null);
// 进行 zip 压缩的 url
$url1 = 'http://phpsdk.qiniudn.com/php-logo.png';
$url2 = 'http://phpsdk.qiniudn.com/1.png';
// 压缩后的 key
$zipKey = 'test.zip';
$fops = 'mkzip/2/url/' . \Qiniu\base64_urlSafeEncode($url1);
$fops .= '/url/' . \Qiniu\base64_urlSafeEncode($url2);
$fops .= '|saveas/' . \Qiniu\base64_urlSafeEncode("$bucket:$zipKey");
// 处理完成后通知到你的业务服务器(需要可以公网访问,并能够相应 200 OK
$notify_url = null;
// 当转码后的文件名与源文件名相同时,是否覆盖源文件
$force = false;
list($id, $err) = $pfop->execute($bucket, $key, $fops, $pipeline, $notify_url, $force);
echo "\n====> pfop mkzip result: \n";
if ($err != null) {
var_dump($err);
} else {
echo "PersistentFop Id: $id\n";
}
// 查询转码的进度和状态
list($ret, $err) = $pfop->status($id);
echo "\n====> pfop mkzip status: \n";
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,55 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Processing\PersistentFop;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
// 对已经上传到七牛的视频发起异步转码操作
// 视频帧缩略图参考文档https://developer.qiniu.com/dora/api/1313/video-frame-thumbnails-vframe
// 要转码的文件所在的空间和文件名
$bucket = getenv('QINIU_TEST_BUCKET');
$key = 'qiniu.mp4';
// 用户默认没有私有队列,需要在这里创建然后填写 https://portal.qiniu.com/dora/media-gate/pipeline
$pipeline = 'sdktest';
// 转码完成后通知到你的业务服务器(需要可以公网访问,并能够相应 200 OK
$notifyUrl = 'http://375dec79.ngrok.com/notify.php';
// 当转码后的文件名与源文件名相同时,是否覆盖源文件
$force = false;
$config = new Config();
$config->useHTTPS = true;
$pfop = new PersistentFop($auth, $config);
// 视频处理完毕后保存到空间中的名称
$saveasKey = 'qiniu_480x360.jpg';
// 进行视频截帧操作
$fops = "vframe/jpg/offset/1/w/480/h/360/rotate/90|saveas/" .
\Qiniu\base64_urlSafeEncode("$bucket:$saveasKey");
list($id, $err) = $pfop->execute($bucket, $key, $fops, $pipeline, $notifyUrl, $force);
echo "\n====> pfop avthumb result: \n";
if ($err != null) {
var_dump($err);
} else {
echo "PersistentFop Id: $id\n";
}
// 查询转码的进度和状态
list($ret, $err) = $pfop->status($id);
echo "\n====> pfop avthumb status: \n";
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,55 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Processing\PersistentFop;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
// 对已经上传到七牛的视频发起异步转码操作
// 普通音视频转码参考文档https://developer.qiniu.com/dora/api/1248/audio-and-video-transcoding-avthumb
// 要转码的文件所在的空间和文件名。
$bucket = getenv('QINIU_TEST_BUCKET');
$key = 'qiniu.mp4';
// 用户默认没有私有队列,需要在这里创建然后填写 https://portal.qiniu.com/dora/media-gate/pipeline
$pipeline = 'sdktest';
// 当转码后的文件名与源文件名相同时,是否覆盖源文件
$force = false;
// 转码完成后通知到你的业务服务器(需要可以公网访问,并能够相应 200 OK
$notifyUrl = 'http://375dec79.ngrok.com/notify.php';
$config = new Config();
$config->useHTTPS=true;
// 视频处理完毕后保存到空间中的名称
$saveasKey = 'qiniu_640x360.mp4';
$pfop = new PersistentFop($auth, $config);
// 进行视频转码操作
$fops = "avthumb/mp4/s/640x360/vb/1.4m|saveas/" . \Qiniu\base64_urlSafeEncode("$bucket:$saveasKey");
list($id, $err) = $pfop->execute($bucket, $key, $fops, $pipeline, $notifyUrl, $force);
echo "\n====> pfop avthumb result: \n";
if ($err != null) {
var_dump($err);
} else {
echo "PersistentFop Id: $id\n";
}
// 查询转码的进度和状态
list($ret, $err) = $pfop->status($id);
echo "\n====> pfop avthumb status: \n";
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,59 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Processing\PersistentFop;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
// 对已经上传到七牛的视频发起异步转码操作
// 视频水印参考文档https://developer.qiniu.com/dora/api/1314/video-watermarking
// 要转码的文件所在的空间和文件名
$bucket = getenv('QINIU_TEST_BUCKET');
$key = 'qiniu.mp4';
// 用户默认没有私有队列,需要在这里创建然后填写 https://portal.qiniu.com/dora/media-gate/pipeline
$pipeline = 'sdktest';
// 转码完成后通知到你的业务服务器(需要可以公网访问,并能够相应 200 OK
$notifyUrl = 'http://375dec79.ngrok.com/notify.php';
// 当转码后的文件名与源文件名相同时,是否覆盖源文件
$force = false;
$config = new Config();
$config->useHTTPS=true;
$pfop = new PersistentFop($auth, $config);
// 图片水印的源路径,也就是给视频打图片水印的图片
$base64URL = Qiniu\base64_urlSafeEncode('http://test-2.qiniudn.com/logo.png');
// 视频处理完毕后保存到空间中的名称
$saveasKey = 'qiniu_watermark.mp4';
// 进行视频打图片水印操作
$fops = "avthumb/mp4/wmImage/" . $base64URL . "|saveas/"
. \Qiniu\base64_urlSafeEncode("$bucket:$saveasKey");
list($id, $err) = $pfop->execute($bucket, $key, $fops, $pipeline, $notifyUrl, $force);
echo "\n====> pfop avthumb result: \n";
if ($err != null) {
var_dump($err);
} else {
echo "PersistentFop Id: $id\n";
}
// 查询转码的进度和状态
list($ret, $err) = $pfop->status($id);
echo "\n====> pfop avthumb status: \n";
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Processing\PersistentFop;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$config->useHTTPS=true;
$pfop = new PersistentFop($auth, $config);
$id = "z2.01z201c4oyre6q1hgy00murnel0002nh";
// 查询持久化处理的进度和状态
list($ret, $err) = $pfop->status($id);
echo "\n====> pfop avthumb status: \n";
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
$bucket = 'xxxx'; // 存储空间名称
$private = 1; // 公开0私有1
// 设置 Bucket 访问权限
// 参考文档https://developer.qiniu.com/kodo/api/3946/set-bucket-private
list($ret, $err) = $bucketManager->putBucketAccessMode($bucket, $private);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
$bucket = 'xxxx'; // 存储空间名称
$mode = 1; // 关闭0 开启1
// 存储空间 - 原图保护开关
// 原图保护https://developer.qiniu.com/kodo/kb/1359/what-is-the-original-protection
list($ret, $err) = $bucketManager->putBucketAccessStyleMode($bucket, $mode);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,32 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 增加 bucket 事件通知规则
// 参考文档https://developer.qiniu.com/kodo/manual/6095/event-notification
$bucket = getenv('QINIU_TEST_BUCKET');
$name = 'testnotification';
$prefix = 'test1';
$suffix = 'mp3';
$event = array("move","copy");
$callbackURL = 'http://www.qiniu.com'; // 回调服务器地址,需要可以公网访问,并能够相应 200 OK
list($ret, $err) = $bucketManager->putBucketEvent($bucket, $name, $prefix, $suffix, $event, $callbackURL);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 设置 Bucket 的 maxAge
// 参考文档https://developer.qiniu.com/kodo/kb/1475/space-maxage-attribute-to-the-cache-control
$bucket = getenv('QINIU_TEST_BUCKET');
$maxAge = 31536000;
list($ret, $err) = $bucketManager->putBucketMaxAge($bucket, $maxAge);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,29 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 设置 bucket 配额
// size 表示空间存储量配额count 表示空间文件数配额,新创建的空间默认没有限额
$size = 99999;
$count = 99;
list($ret, $err) = $bucketManager->putBucketQuota($bucket, $size, $count);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,30 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 存储空间 - 设置 referer 防盗链
// 参考文档https://developer.qiniu.com/kodo/manual/6093/set-the-hotlinking-prevention
$bucket = getenv('QINIU_TEST_BUCKET');
$mode = 1; // 关闭Referer(使用此选项将会忽略以下参数并将恢复默认值):0设置Referer白名单1表示设置Referer黑名单2
$norefer = "1"; // 表示不允许空 Refer 访问0表示允许空 Refer 访问1
$pattern = "*.qiniu.com"; // 当前仅支持这三种格式a.b.com*.b.com*
list($ret, $err) = $bucketManager->putReferAntiLeech($bucket, $mode, $norefer, $pattern);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

14
vendor/qiniu/php-sdk/examples/qetag.php vendored Normal file
View File

@@ -0,0 +1,14 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Etag;
// 计算文件的 ETag
// 参考文档https://developer.qiniu.com/kodo/manual/1231/appendix#3
$localFile = "./php-logo.png";
list($ret, $err) = Etag::sum($localFile);
if ($err != null) {
var_dump($err);
} else {
echo "Etag: $ret";
}

View File

@@ -0,0 +1,71 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$config->useHTTPS = true; // 接口是否使用 HTTPS 协议
$bucketManager = new BucketManager($auth, $config);
// 异步第三方资源抓取
// 参考文档https://developer.qiniu.com/kodo/api/4097/asynch-fetch
// 需要抓取的文件 URL
$url = 'http://devtools.qiniu.com/qiniu.png';
//回调 URL需要可以公网访问并能够相应 200 OK
$callbackurl = "http://your.domain.com/upload_verify_callback.php";
// 回调Body
$callbackbody = '{"key":"$(key)","hash":"$(etag)","w":"$(imageInfo.width)","h":"$(imageInfo.height)"}';
//---------------------------------------- demo1 ----------------------------------------
// 指定抓取的文件保存到七牛云空间中的名称
$key = time() . '.png';
list($ret, $err) = $bucketManager->asynchFetch($url, $bucket, null, $key, null, null, $callbackurl, $callbackbody);
echo "=====> asynch fetch $url to bucket: $bucket key: $key\n";
if ($err !== null) {
var_dump($err);
} else {
$id = $ret['id'];
echo "id is: $id\n";
}
//---------------------------------------- demo2 ----------------------------------------
// 不指定 key 时,以文件内容的 hash 作为文件名
$key = null;
list($ret, $err) = $bucketManager->asynchFetch($url, $bucket, null, $key, null, null, $callbackurl, $callbackbody);
echo "=====> asynch fetch $url to bucket: $bucket key: $(etag)\n";
if ($err !== null) {
var_dump($err);
} else {
$id = $ret['id'];
echo "id is: $id\n";
}
// 查询异步抓取的进度和状态
// 华东z0华北z1华南z2北美na0东南亚as0
$zone = 'z2';
sleep(10); // 由于异步抓取需要耗时,等待 10 秒后再查询状态
list($ret, $err) = $bucketManager->asynchFetchStatus($zone, $id);
echo "\n====> asynch fetch status: \n";
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,32 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 批量修改文件类型,每次最多不能超过 1000 个
$keyMimePairs = array(
'qiniu.mp4' => 'video/x-mp4',
'qiniu.png' => 'image/x-png',
'qiniu.jpg' => 'image/x-jpg'
);
$ops = $bucketManager->buildBatchChangeMime($bucket, $keyMimePairs);
list($ret, $err) = $bucketManager->batch($ops);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,39 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 批量修改文件存储类型,每次最多不能超过 1000 个
$keys = array(
'qiniu.mp4',
'qiniu.png',
'qiniu.jpg'
);
$keyTypePairs = array();
// type=0表示普通存储type=1表示低频存储
foreach ($keys as $key) {
$keyTypePairs[$key] = 1;
}
$ops = $bucketManager->buildBatchChangeType($bucket, $keyTypePairs);
list($ret, $err) = $bucketManager->batch($ops);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,40 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 批量复制文件到另一个存储空间,每次最多不能超过 1000 个
$keys = array(
'qiniu.mp4',
'qiniu.png',
'qiniu.jpg'
);
$keyPairs = array();
foreach ($keys as $key) {
$keyPairs[$key] = $key . "_copy";
}
$srcBucket = $bucket;
$destBucket = $bucket;
$ops = $bucketManager->buildBatchCopy($srcBucket, $keyPairs, $destBucket, true);
list($ret, $err) = $bucketManager->batch($ops);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,32 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 批量删除文件,每次最多不能超过 1000 个
$keys = array(
'qiniu.mp4',
'qiniu.png',
'qiniu.jpg'
);
$ops = $bucketManager->buildBatchDelete($bucket, $keys);
list($ret, $err) = $bucketManager->batch($ops);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,39 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 批量修改文件生命周期,每次最多不能超过 1000 个
$keys = array(
'qiniu.mp4',
'qiniu.png',
'qiniu.jpg'
);
$keyDayPairs = array();
// day=0表示永久存储
foreach ($keys as $key) {
$keyDayPairs[$key] = 0;
}
$ops = $bucketManager->buildBatchDeleteAfterDays($bucket, $keyDayPairs);
list($ret, $err) = $bucketManager->batch($ops);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,40 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 批量移动文件到另一个存储空间,每次最多不能超过 1000 个
$keys = array(
'qiniu.mp4',
'qiniu.png',
'qiniu.jpg'
);
$keyPairs = array();
foreach ($keys as $key) {
$keyPairs[$key . "_copy"] = $key . "_move";
}
$srcBucket = $bucket;
$destBucket = $bucket;
$ops = $bucketManager->buildBatchMove($srcBucket, $keyPairs, $destBucket, true);
list($ret, $err) = $bucketManager->batch($ops);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,32 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 批量查询文件状态,每次最多不能超过 1000 个
$keys = array(
'qiniu.mp4',
'qiniu.png',
'qiniu.jpg'
);
$ops = $bucketManager->buildBatchStat($bucket, $keys);
list($ret, $err) = $bucketManager->batch($ops);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 获取指定空间绑定的所有的域名
// 参考文档https://developer.qiniu.com/kodo/api/3949/get-the-bucket-space-domain
list($ret, $err) = $bucketManager->domains($bucket);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,25 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 获取指定账号下所有的空间名
// 参考文档https://developer.qiniu.com/kodo/api/3926/get-service
list($ret, $err) = $bucketManager->buckets(true);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 修改文件的 MIME 类型信息
// 参考文档https://developer.qiniu.com/kodo/api/1252/chgm
$key = 'qiniu.mp4';
$newMime = 'video/x-mp4';
$err = $bucketManager->changeMime($bucket, $key, $newMime);
if ($err) {
print_r($err);
}

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
$status = 1;// 启用0禁用1
// 修改文件的存储状态。参考文档https://developer.qiniu.com/kodo/api/4173/modify-the-file-status
$key = "qiniu.jpg";
$err = $bucketManager->changeStatus($bucket, $key, $status);
if ($err) {
print_r($err);
}

View File

@@ -0,0 +1,29 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 修改指定资源的存储类型
// 参考文档https://developer.qiniu.com/kodo/api/3710/chtype
$key = "qiniu.mp4";
$fileType = 1; // 0 表示标准存储1 表示低频存储2 表示归档存储
$err = $bucketManager->changeType($bucket, $key, $fileType);
if ($err) {
print_r($err);
}

View File

@@ -0,0 +1,31 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 资源复制
// 参考文档https://developer.qiniu.com/kodo/api/1254/copy
$key = "qiniu.mp4";
$srcBucket = $bucket;
$destBucket = $bucket;
$srcKey = $key;
$destKey = $key . "_copy";
$err = $bucketManager->copy($srcBucket, $srcKey, $destBucket, $destKey, true);
if ($err) {
print_r($err);
}

View File

@@ -0,0 +1,25 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 删除指定资源参考文档https://developer.qiniu.com/kodo/api/1257/delete
$key = "qiniu.mp4_copy";
$err = $bucketManager->delete($bucket, $key);
if ($err) {
print_r($err);
}

View File

@@ -0,0 +1,24 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new \Qiniu\Config();
$bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
// 设置文件的生命周期
// 参考文档https://developer.qiniu.com/kodo/api/1732/update-file-lifecycle
$key = 'qiniu.mp4';
$days = 10; // 设置为 0 表示取消生命周期
$err = $bucketManager->deleteAfterDays($bucket, $key, $days);
if ($err) {
print_r($err);
}

View File

@@ -0,0 +1,19 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
// 构建 Auth 对象
$auth = new Auth($accessKey, $secretKey);
// 私有空间中的外链 http(s)://<domain>/<file_key>,一定要带访问协议,也就是 http:// 或者 https://
$baseUrl = 'http://if-pri.qiniudn.com/qiniu.png?imageView2/1/h/500';
// 对链接进行签名参考文档https://developer.qiniu.com/kodo/manual/1656/download-private
$signedUrl = $auth->privateDownloadUrl($baseUrl);
echo $signedUrl;

View File

@@ -0,0 +1,43 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$bucketManager = new BucketManager($auth);
// 第三方资源抓取
// 参考文档https://developer.qiniu.com/kodo/api/1263/fetch
// 需要抓取的文件 URL
$url = 'http://devtools.qiniu.com/qiniu.png';
//---------------------------------------- demo1 ----------------------------------------
// 指定抓取的文件保存到七牛云空间中的名称
$key = time() . '.png';
list($ret, $err) = $bucketManager->fetch($url, $bucket, $key);
echo "=====> fetch $url to bucket: $bucket key: $key\n";
if ($err !== null) {
var_dump($err);
} else {
print_r($ret);
}
//---------------------------------------- demo2 ----------------------------------------
// 不指定 key 时,以文件内容的 hash 作为文件名
$key = null;
list($ret, $err) = $bucketManager->fetch($url, $bucket, $key);
echo "=====> fetch $url to bucket: $bucket key: $(etag)\n";
if ($err !== null) {
var_dump($err);
} else {
print_r($ret);
}

View File

@@ -0,0 +1,27 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$key = "qiniu.mp4";
$auth = new Auth($accessKey, $secretKey);
$config = new \Qiniu\Config();
$bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
$srcBucket = $bucket;
$destBucket = $bucket;
$srcKey = $key . "_copy";
$destKey = $key . "_move";
// 资源移动或者重命名
// 参考文档https://developer.qiniu.com/kodo/api/1288/move
$err = $bucketManager->move($srcBucket, $srcKey, $destBucket, $destKey, true);
if ($err) {
print_r($err);
}

View File

@@ -0,0 +1,23 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$key = "qiniu.mp4";
$auth = new Auth($accessKey, $secretKey);
$config = new \Qiniu\Config();
$bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
// 镜像资源更新
// 参考文档https://developer.qiniu.com/kodo/api/1293/prefetch
$err = $bucketManager->prefetch($bucket, $key);
if ($err) {
print_r($err);
}

View File

@@ -0,0 +1,28 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 资源元信息查询
// 参考文档https://developer.qiniu.com/kodo/api/1308/stat
$key = "qiniu.mp4";
list($ret, $err) = $bucketManager->stat($bucket, $key);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,47 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$bucketManager = new BucketManager($auth);
// 资源列举
// 参考文档https://developer.qiniu.com/kodo/api/1284/list
// 要列取文件的公共前缀
$prefix = '';
// 上次列举返回的位置标记,作为本次列举的起点信息。
$marker = '';
// 本次列举的条目数,范围为 1-1000
$limit = 200;
$delimiter = '/';
do {
list($ret, $err) = $bucketManager->listFiles($bucket, $prefix, $marker, $limit, $delimiter);
if ($err !== null) {
echo "\n====> list file err: \n";
var_dump($err);
} else {
$marker = null;
if (array_key_exists('marker', $ret)) {
$marker = $ret['marker'];
}
echo "Marker: $marker\n";
echo "\nList Items====>\n";
//var_dump($ret['items']);
print('items count:' . count($ret['items']) . "\n");
if (array_key_exists('commonPrefixes', $ret)) {
print_r($ret['commonPrefixes']);
}
}
} while (!empty($marker));

View File

@@ -0,0 +1,39 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$bucketManager = new BucketManager($auth);
// 资源列举
// https://developer.qiniu.com/kodo/api/1284/list
// 要列取文件的公共前缀
$prefix = '';
// 上次列举返回的位置标记,作为本次列举的起点信息。
$marker = '';
// 本次列举的条目数,,范围为 1-1000
$limit = 100;
$delimiter = '/';
// 列举文件
list($ret, $err) = $bucketManager->listFiles($bucket, $prefix, $marker, $limit, $delimiter);
if ($err !== null) {
echo "\n====> list file err: \n";
var_dump($err);
} else {
if (array_key_exists('marker', $ret)) {
echo "Marker:" . $ret["marker"] . "\n";
}
echo "\nList Iterms====>\n";
}

View File

@@ -0,0 +1,34 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
$bucketManager = new BucketManager($auth);
// 资源列举 V2
// https://developer.qiniu.com/kodo/api/4539/v2-list
// 要列取文件的公共前缀
$prefix = '';
// 上次列举返回的位置标记,作为本次列举的起点信息。
$marker = '';
// 本次列举的条目数,范围为 1-1000
$limit = 1000;
$delimiter = '';
list($ret, $err) = $bucketManager->listFilesv2($bucket, $prefix, $marker, $limit, $delimiter, true);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,34 @@
# Rtc Streaming Cloud Server-Side Library For PHP
## Features
- RoomToken 签发
- [x] 生成 RoomToken: client->appToken()
- App 管理
- [x] 创建应用: client->createApp()
- [x] 获取应用配置信息: client->getApp()
- [x] 更新应用配置信息: client->updateApp()
- [x] 删除应用: client->deleteApp()
- 房间管理
- [x] 列举房间下的所有用户: client->listUser()
- [x] 指定一个用户踢出房间: client->kickUser()
- [x] 停止一个房间的合流转推: client->stopMerge()
- [x] 获取当前所有活跃的房间: client->listActiveRooms()
## Demo
- RoomToken 签发
- [生成 RoomToken](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_create_roomToken.php)
- App 管理
- [创建应用](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_createApp.php)
- [获取应用配置信息](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_getApp.php)
- [更新应用配置信息](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_updateApp.php)
- [删除应用](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_deleteApp.php)
- 房间管理
- [列举房间下的所有用户](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_rooms_listUser.php)
- [指定一个用户踢出房间](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_rooms_kickUser.php)
- [停止一个房间的合流转推](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_rooms_stopMerge.php)
- [获取当前所有活跃的房间](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_rooms_listActiveRooms.php)

View File

@@ -0,0 +1,32 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// 绑定的直播hub使用此hub的资源进行推流等业务功能hub与app必须属于同一个七牛账户
$hub = 'rtchub';
// app 的名称注意Title 不是唯一标识,重复 create 动作将生成多个 app
$title = 'rtc';
// 连麦房间支持的最大在线人数
$maxUsers = 20;
// 创建应用
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_1
list($ret, $err) = $client->createApp($hub, $title, $maxUsers);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Create Successfully \n";
var_dump($ret);
}

View File

@@ -0,0 +1,34 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 房间名称,需满足规格 ^[a-zA-Z0-9_-]{3,64}$
$roomName = 'room01';
// 请求加入房间的用户 ID需满足规格 ^[a-zA-Z0-9_-]{3,50}$
$userId = '001';
// 鉴权的有效时间传入以秒为单位的64位 Unix 绝对时间token 将在该时间后失效
$expireAt = time()+3600;
// "admin"或"user",默认为"user" 。当权限角色为"admin"时,拥有将其他用户移除出房间等特权
$permission = 'admin';
// 生成加入房间的令牌 RoomToken
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#1
$RoomToken = $client->appToken($appId, $roomName, $userId, $expireAt, $permission);
echo "\n====> Create RoomToken Successfully \n";
var_dump($RoomToken);

View File

@@ -0,0 +1,25 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 删除应用
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_1
list($ret, $err) = $client->deleteApp($appId);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Delete $appId Successfully \n";
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 获取一个应用当前的配置信息
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_1
list($ret, $err) = $client->getApp($appId);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> $appId Conf: \n";
var_dump($ret);
}

View File

@@ -0,0 +1,31 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 房间名称
$roomName = 'room01';
// 操作所剔除的用户
$userId = '001';
// 指定一个用户踢出房间
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_2
list($ret, $err) = $client->kickUser($appId, $roomName, $userId);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Kick User $userId Successfully \n";
}

View File

@@ -0,0 +1,35 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 所查询房间名的前缀索引,可以为空
$prefix = null;
// 分页查询的位移标记
$offset = null;
// 此次查询的最大长度
$limit = 100;
// 获取当前所有活跃的房间
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_2
list($ret, $err) = $client->listActiveRooms($appId, $prefix, $offset, $limit);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Active Rooms:\n";
var_dump($ret);
}

View File

@@ -0,0 +1,29 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 房间名称
$roomName = 'room01';
// 列出指定房间下当前所有用户
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_2
list($ret, $err) = $client->listUser($appId, $roomName);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> User List: \n";
var_dump($ret);
}

View File

@@ -0,0 +1,28 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 房间名称
$roomName = 'room01';
// 停止一个房间的合流转推
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_2
list($ret, $err) = $client->stopMerge($appId, $roomName);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Stop Merge Successfully \n";
}

View File

@@ -0,0 +1,40 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成。
$appId = "xxxx";
// 绑定的直播hub使用此hub的资源进行推流等业务功能hub与app必须属于同一个七牛账户
$hub = 'rtchub';
// app 的名称注意Title 不是唯一标识,重复 create 动作将生成多个 app
$title = 'rtc';
// 连麦房间支持的最大在线人数
$maxUsers = 30;
// 连麦合流转推 RTMP 的配置
$mergePublishRtmp = array();
$mergePublishRtmp['enable'] = true;
// 更新一个应用的配置信息
// 注意:调用这个接口后仅对调用后新创建的房间有效,已经存在的房间需要等待被关闭重新创建后生效
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_1
list($ret, $err) = $client->updateApp($appId, $hub, $title, $maxUsers, false, $mergePublishRtmp);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Update $appId Conf Successfully \n";
var_dump($ret);
}

View File

@@ -0,0 +1,33 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Processing\PersistentFop;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
// 处理结果另存为
// 参考文档https://developer.qiniu.com/dora/api/1305/processing-results-save-saveas
// 生成EncodedEntryURI的值<Key>为生成缩略图的文件名
$entry = '<bucket>:<Key>';
// 生成的值
$encodedEntryURI = \Qiniu\base64_urlSafeEncode($entry);
// 使用 SecretKey 对新的下载 URL 进行 HMAC1-SHA1 签名
$newurl = "78re52.com1.z0.glb.clouddn.com/resource/Ship.jpg?imageView2/2/w/200/h/200|saveas/" . $encodedEntryURI;
$sign = hash_hmac("sha1", $newurl, $secretKey, true);
// 对签名进行 URL 安全的 Base64 编码
$encodedSign = \Qiniu\base64_urlSafeEncode($sign);
// 最终得到的完整下载 URL
$finalURL = "http://" . $newurl . "/sign/" . $accessKey . ":" . $encodedSign;
$callbackBody = file_get_contents("$finalURL");
echo $callbackBody;

View File

@@ -0,0 +1,45 @@
# SMS Server-Side Library For PHP
## Features
- 签名管理
- [x] 创建签名: client->createSignature()
- [x] 列出签名: client->checkSignature()
- [x] 查询单个签名: client->checkSingleSignature()
- [x] 编辑签名: client->updateSignature()
- [x] 删除签名: client->deleteSignature()
- 模板管理
- [x] 创建模板: client->createTemplate()
- [x] 列出模板: client->queryTemplate()
- [x] 查询单个模板: client->querySingleTemplate()
- [x] 编辑模板: client->updateTemplate()
- [x] 删除模板: client->deleteTemplate()
- 发送短信
- [x] 发送短信: client->sendMessage()
- 查询发送记录
- [x] 查询发送记录: client->querySendSms()
## Demo
- 签名管理
- [创建签名](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_create_signature.php)
- [列出签名](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_query_signature.php)
- [查询单个签名](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_query_single_signature.php)
- [编辑签名](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_edit_signature.php)
- [删除签名](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_delete_signature.php)
- 模板管理
- [创建模板](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_create_template.php)
- [列出模板](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_query_template.php)
- [查询单个模板](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_query_single_template.php)
- [编辑模板](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_edit_template.php)
- [删除模板](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_delete_template.php)
- 发送短信
- [发送短信](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_send_message.php)
- 查询发送记录
- [查询发送记录](https://github.com/qiniu/php-sdk/tree/master/examples/sms/sms_query_send_sms.php)

View File

@@ -0,0 +1,29 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 创建签名
// 参考文档https://developer.qiniu.com/sms/api/5844/sms-api-create-signature
// 签名审核标准https://developer.qiniu.com/sms/manual/5816/signature-specification
$signature = 'xxxx'; // 签名
$source = 'website'; // 签名来源,申请签名时必须指定签名来源
$pics = '../php-logo.png'; // 签名对应的资质证明图片
list($ret, $err) = $client->createSignature($signature, $source, $pics);
echo "\n====> create signature result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,33 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 创建模板
// 参考文档https://developer.qiniu.com/sms/api/5893/sms-api-create-template
// 模板审核标准https://developer.qiniu.com/sms/manual/5814/template-specification
$name = 'xxxxxx'; // 模板名称
$template = '您的验证码为: ${code},如非本人操作,请忽略本短信'; // 模板内容 可设置自定义变量,发送短信时候使用
// notification (通知类短信), verification (验证码短信), marketing (营销类短信), voice(语音类短信)
$type = 'verification';
$description = '发送验证码使用'; // 申请理由简述
$signature_id = 'xxxxxx'; // 已经审核通过的签名
list($ret, $err) = $client->createTemplate($name, $template, $type, $description, $signature_id);
echo "\n====> create signature result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,25 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 删除签名
// 参考文档https://developer.qiniu.com/sms/api/5891/sms-api-delete-signature
// 签名 ID
$signature_id = 'xxxxxx';
list($ret, $err) = $client->deleteSignature($signature_id);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Delete Signature $signature_id Successfully\n";
}

View File

@@ -0,0 +1,25 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 删除模板
// 参考文档https://developer.qiniu.com/sms/api/5896/sms-api-delete-template
// 模板 ID
$template_id = 'xxxxxx';
list($ret, $err) = $client->deleteTemplate($template_id);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Delete Template $template_id Successfully\n";
}

View File

@@ -0,0 +1,30 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 编辑签名
// 参考文档https://developer.qiniu.com/sms/api/5890/sms-api-edit-signature
// 签名审核标准https://developer.qiniu.com/sms/manual/5816/signature-specification
$id = 'xxxxxx'; // 签名 ID
$signature = 'xxxx'; // 签名
$source = 'website'; // 签名来源,申请签名时必须指定签名来源
$pics = '../php-logo.png'; // 签名对应的资质证明图片
list($ret, $err) = $client->updateSignature($id, $signature, $source, $pics);
echo "\n====> edit signature result: \n";
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Update Signature Successfully\n";
}

View File

@@ -0,0 +1,31 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 编辑模板
// 参考文档https://developer.qiniu.com/sms/api/5895/sms-api-edit-template
// 模板审核标准https://developer.qiniu.com/sms/manual/5814/template-specification
$template_id = 'xxxxxx'; // 模板 ID
$name = '验证码'; // 模板名称
$template = '验证码为: ${code},如非本人操作,请忽略本短信'; // 模板内容 可设置自定义变量,发送短信时候使用
$description = '发送验证码'; // 申请理由简述
$signature_id = 'xxxxxx'; // 已经审核通过的签名
list($ret, $err) = $client->updateTemplate($template_id, $name, $template, $description, $signature_id);
echo "\n====> edit template result: \n";
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Update Template Successfully\n";
}

View File

@@ -0,0 +1,50 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 查询发送记录
// 参考文档https://developer.qiniu.com/sms/api/5852/query-send-sms
$job_id = 'xxxx'; // 发送任务返回的 id
$message_id = 'xxxx'; // 单条短信发送接口返回的 id
$mobile = 'xxxx'; // 接收短信的手机号码
// 短信的状态sending: 发送中success: 发送成功failed: 发送失败waiting: 等待发送
$status = 'success';
$template_id = 'xxxx'; // 模版 id
// marketing: 营销短信notification: 通知短信verification: 验证码类短信voice: 语音短信
$type = 'notification';
$start = 1599976580; // 开始时间
$end = 1599977229; // 结束时间
$page = 1; // 页码,默认为 1
$page_size = 20; // 每页返回的数据条数默认20最大200
list($ret, $err) = $client->querySendSms(
$job_id,
$message_id,
$mobile,
$status,
$template_id,
$type,
$start,
$end,
$page,
$page_size
);
echo "\n====> query send sms result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,28 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 列出签名
// 参考文档https://developer.qiniu.com/sms/api/5889/sms-api-query-signature
// 审核状态, 取值范围为: "passed"(通过), "rejected"(未通过), "reviewing"(审核中)
$audit_status = 'passed';
$page = 1; // 页码,默认为 1
$page_size = 30; // 分页大小,默认为 20
list($ret, $err) = $client->querySignature($audit_status, $page, $page_size);
echo "\n====> query signature result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 查询单个签名
// 参考文档https://developer.qiniu.com/sms/api/5970/query-a-single-signature
// 签名 ID
$signature_id = 'xxxxxx';
list($ret, $err) = $client->checkSingleSignature($signature_id);
echo "\n====> query single signature result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 查询单个模板
// 参考文档https://developer.qiniu.com/sms/api/5969/query-a-single-template
// 模板 ID
$template_id = 'xxxxxx';
list($ret, $err) = $client->querySingleTemplate($template_id);
echo "\n====> query single template result \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,28 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 列出摸板
// 参考文档https://developer.qiniu.com/sms/api/5894/sms-api-query-template
// 审核状态, 取值范围为: passed (通过), rejected (未通过), reviewing (审核中)
$audit_status = 'rejected';
$page = 1; // 页码,默认为 1
$page_size = 30; // 分页大小,默认为 20
list($ret, $err) = $client->queryTemplate($audit_status, $page, $page_size);
echo "\n====> query template result \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,32 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Sms\Sms;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new Sms($auth);
// 发送短信
// 参考文档https://developer.qiniu.com/sms/api/5897/sms-api-send-message
// 模板 ID
$template_id = 'xxxxxx';
// 接收短信的手机号码
$mobiles = array("15012345678", "15012345679");
// 自定义模板变量
$code = array('code' => 'xxxx');
list($ret, $err) = $client->sendMessage($template_id, $mobiles, $code);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Send Message Successfully \n";
var_dump($ret);
}

View File

@@ -0,0 +1,31 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 更新 bucket 事件通知规则
// 参考文档https://developer.qiniu.com/kodo/manual/6095/event-notification
$bucket = 'xxxx';
$name = 'demo';
$prefix = 'test';
$suffix = 'mp4';
$event = array("move","copy");
$callbackURL = 'https://www.qiniu.com';
list($ret, $err) = $bucketManager->updateBucketEvent($bucket, $name, $prefix, $suffix, $event, $callbackURL);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,36 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$config = new Config();
$bucketManager = new BucketManager($auth, $config);
// 存储空间 - 更新生命周期规则
// 参考文档https://developer.qiniu.com/kodo/manual/3699/life-cycle-management
$bucket = 'xxxx';
$name = 'demo';
$prefix = 'test';
$delete_after_days = 90;
$to_line_after_days =80;
list($ret, $err) = $bucketManager->updateBucketLifecycleRule(
$bucket,
$name,
$prefix,
$delete_after_days,
$to_line_after_days
);
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,31 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
// 上传完成后通知到你的业务服务器(需要可以公网访问,并能够相应 200 OK
// 上传策略参数https://developer.qiniu.com/kodo/manual/1206/put-policy
$policy = array(
'callbackUrl' => 'http://your.domain.com/upload_verify_callback.php',
'callbackBody' => 'filename=$(fname)&filesize=$(fsize)'
);
$uptoken = $auth->uploadToken($bucket, null, 3600, $policy);
// 上传文件的本地路径
$filePath = './php-logo.png';
$uploadMgr = new UploadManager();
list($ret, $err) = $uploadMgr->putFile($uptoken, null, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,49 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
// 使用上传策略实现上传文件后,自动对该文件进行转码处理,并持久化生成一个新的文件存储到空间中
// 上传到七牛后保存的文件名
$key = 'php-logo.png';
// 要上传文件的本地路径
$filePath = './php-logo.png';
$uploadMgr = new UploadManager();
// 视频处理完毕后保存到空间中的名称
$saveasKey = 'php-logo-rotate.png';
// 处理参数
$pfop = "imageMogr2/rotate/90|saveas/" . \Qiniu\base64_urlSafeEncode("$bucket:$saveasKey");
// 转码完成后通知到你的业务服务器(需要可以公网访问,并能够相应 200 OK
$notifyUrl = 'http://notify.fake.com';
// 用户默认没有私有队列,需要在这里创建然后填写 https://portal.qiniu.com/dora/media-gate/pipeline
$pipeline = 'sdktest';
// 上传策略参数https://developer.qiniu.com/kodo/manual/1206/put-policy
$policy = array(
'persistentOps' => $pfop,
'persistentNotifyUrl' => $notifyUrl,
'persistentPipeline' => $pipeline
);
$token = $auth->uploadToken($bucket, null, 3600, $policy);
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,19 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
// 存储空间名称
$bucket = 'Bucket_Name';
// 生成上传 Token
$token = $auth->uploadToken($bucket);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();

View File

@@ -0,0 +1,89 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
// 用户默认没有私有队列,需要在这里创建然后填写 https://portal.qiniu.com/dora/media-gate/pipeline
$pipeline = 'sdktest';
$auth = new Auth($accessKey, $secretKey);
$token = $auth->uploadToken($bucket);
$uploadMgr = new UploadManager();
//---------------------------------------- upload demo1 ----------------------------------------
// 上传字符串到七牛
list($ret, $err) = $uploadMgr->put($token, null, 'content string');
echo "\n====> put result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
//---------------------------------------- upload demo2 ----------------------------------------
// 上传文件到七牛
$filePath = './php-logo.png';
$key = 'php-logo.png';
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
//---------------------------------------- upload demo3 ----------------------------------------
// 上传文件到七牛后, 七牛将文件名和文件大小回调给业务服务器.
// 可参考文档: https://developer.qiniu.com/kodo/manual/1206/put-policy
$policy = array(
'callbackUrl' => 'http://172.30.251.210/upload_verify_callback.php',
'callbackBody' => 'filename=$(fname)&filesize=$(fsize)'
// 'callbackBodyType' => 'application/json',
// 'callbackBody' => '{"filename":$(fname), "filesize": $(fsize)}' //设置application/json格式回调
);
$token = $auth->uploadToken($bucket, null, 3600, $policy);
list($ret, $err) = $uploadMgr->putFile($token, null, $key);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
//---------------------------------------- upload demo4 ----------------------------------------
// 上传视频,上传完成后进行 m3u8 的转码, 并给视频打水印
$wmImg = Qiniu\base64_urlSafeEncode('http://devtools.qiniudn.com/qiniu.png');
$pfop = "avthumb/m3u8/wmImage/$wmImg";
// 转码完成后回调到业务服务器。(公网可以访问,并相应 200 OK
$notifyUrl = 'http://notify.fake.com';
$policy = array(
'persistentOps' => $pfop,
'persistentNotifyUrl' => $notifyUrl,
'persistentPipeline' => $pipeline
);
$token = $auth->uploadToken($bucket, null, 3600, $policy);
print($token);
list($ret, $err) = $uploadMgr->putFile($token, null, $key);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,37 @@
<?php
require_once __DIR__ . '/../autoload.php';
// 引入鉴权类
use Qiniu\Auth;
// 引入上传类
use Qiniu\Storage\UploadManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);
// 生成上传 Token
$token = $auth->uploadToken($bucket);
// 要上传文件的本地路径
$filePath = './php-logo.png';
// 上传到七牛存储后保存的文件名
$key = 'my-php-logo.png';
// 初始化 UploadManager 对象并进行文件的上传。
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传,该方法会判断文件大小,进而决定使用表单上传还是分片上传,无需手动配置。
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,82 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
// 初始化 Auth 状态
$auth = new Auth($accessKey, $secretKey);
//---------------------------------------- demo1 ----------------------------------------
// 设置凭证有效期(单位秒)
$expires = 3600;
$policy = null;
$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true);
print($upToken . "\n");
//---------------------------------------- demo2 ----------------------------------------
// 自定义凭证有效期示例2小时
$expires = 7200;
$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true);
print($upToken . "\n");
//---------------------------------------- demo3 ----------------------------------------
// 覆盖上传凭证
$expires = 3600;
$keyToOverwrite = 'qiniu.mp4';
$upToken = $auth->uploadToken($bucket, $keyToOverwrite, $expires, $policy, true);
print($upToken . "\n");
//---------------------------------------- demo4 ----------------------------------------
// 自定义上传回复非callback模式凭证
$returnBody = '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}';
$policy = array(
'returnBody' => $returnBody
);
$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true);
print($upToken . "\n");
//---------------------------------------- demo5 ----------------------------------------
// 带回调业务服务器的凭证application/json
$policy = array(
'callbackUrl' => 'http://api.example.com/qiniu/upload/callback',
'callbackBody' => '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}',
'callbackBodyType' => 'application/json'
);
$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true);
print($upToken . "\n");
//---------------------------------------- demo6 ----------------------------------------
// 带回调业务服务器的凭证application/x-www-form-urlencoded
$policy = array(
'callbackUrl' => 'http://api.example.com/qiniu/upload/callback',
'callbackBody' => 'key=$(key)&hash=$(etag)&bucket=$(bucket)&fsize=$(fsize)&name=$(x:name)'
);
$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true);
print($upToken . "\n");
//---------------------------------------- demo7 ----------------------------------------
// 带数据处理的凭证
$saveMp4Entry = \Qiniu\base64_urlSafeEncode($bucket . ":avthumb_test_target.mp4");
$saveJpgEntry = \Qiniu\base64_urlSafeEncode($bucket . ":vframe_test_target.jpg");
$avthumbMp4Fop = "avthumb/mp4|saveas/" . $saveMp4Entry;
$vframeJpgFop = "vframe/jpg/offset/1|saveas/" . $saveJpgEntry;
$policy = array(
'persistentOps' => $avthumbMp4Fop . ";" . $vframeJpgFop,
'persistentPipeline' => "video-pipe",
'persistentNotifyUrl' => "http://api.example.com/qiniu/pfop/notify",
);
$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true);
print($upToken . "\n");

View File

@@ -0,0 +1,34 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$bucket = getenv('QINIU_TEST_BUCKET');
$auth = new Auth($accessKey, $secretKey);
// 获取回调的 body 信息
$callbackBody = file_get_contents('php://input');
// 回调的 contentType
$contentType = 'application/x-www-form-urlencoded';
// 回调的签名信息,可以验证该回调是否来自七牛
$authorization = $_SERVER['HTTP_AUTHORIZATION'];
// 七牛回调的 url具体可以参考https://developer.qiniu.com/kodo/manual/1206/put-policy
$url = 'http://172.30.251.210/upload_verify_callback.php';
//参考文档https://developer.qiniu.com/kodo/manual/1653/callback
$isQiniuCallback = $auth->verifyCallback($contentType, $authorization, $url, $callbackBody);
if ($isQiniuCallback) {
$resp = array('ret' => 'success');
} else {
$resp = array('ret' => 'failed');
}
echo json_encode($resp);

View File

@@ -0,0 +1,40 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Zone;
use Qiniu\Config;
use Qiniu\Storage\UploadManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
// 上传到七牛存储后文件所在的空间和文件名
$bucket = getenv('QINIU_TEST_BUCKET');
$key = 'php-logo.png';
$uptoken = $auth->uploadToken($bucket);
// 上传文件的本地路径
$filePath = './php-logo.png';
// 七牛云主机QVM和七牛对象存储KODO内网上传目前支持华东1区域(杭州)和华北2区域(北京)的云主机可以访问同区域的对象存储服务
// 参考文档https://developer.qiniu.com/qvm/manual/4269/qvm-kodo
$zone = Zone::qvmZonez0(); // 华东z0华北z1
$config = new Config($zone);
$config->useHTTPS = true;
// 指定 config
$uploadMgr = new UploadManager($config);
list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}

View File

@@ -0,0 +1,39 @@
<?php
require_once __DIR__ . '/../autoload.php';
use Qiniu\Auth;
use Qiniu\Zone;
use Qiniu\Config;
use Qiniu\Storage\UploadManager;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
// 上传到七牛存储后文件所在的空间和文件名
$bucket = getenv('QINIU_TEST_BUCKET');
$key = 'php-logo.png';
$uptoken = $auth->uploadToken($bucket);
// 上传文件的本地路径
$filePath = './php-logo.png';
// 指定 zone 上传
// 参考文档https://developer.qiniu.com/kodo/manual/1671/region-endpoint
$zone = Zone::zonez0(); // 华东z0华北z1华南z2北美na0东南亚as0
$config = new Config($zone);
$config->useHTTPS = true;
// 指定 config
$uploadMgr = new UploadManager($config);
list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}