说明
首先呢,来到阿里云官网登录账号,开通OSS,先讲一下OSS是收费的,它们的收费规则是,存储空间低于1G不收费,其实空间没多贵就几块钱贵的是流量,流量也是低于1G不收费,夜间:0.25元/1G,日间:0.5元/1G,我来告诉一下大家这个流量是怎么回事,如果你是用阿里云CDN/DCDN
需要购买下行流量,如果是阿里云OSS需要购买回源流量包,这两个也是很贵的,好了废话说完了。
![图片[1]-使用阿里云OSS搭建随机视频接口-安澜博客](https://blog.zhcnli.cn/wp-content/uploads/2025/01/20250119203040524-1000018914.jpg)
教程
宝塔面板或者其他面板,新建一个文件夹,在文件夹里新建一个composer.json文件,这里是下载阿里云OSS的sdk,把下面的文字填入文件,后面的2.0可以根据你的php定义,7.4以上用2.4 以下用2.0,但是安装完他是2.7版本,打开宝塔终端cd到文件所在的目录,输入安装命令 composer install
回车执行然后输入Yes。
{
"require": {
"aliyuncs/oss-sdk-php": "~2.0"
}
}
![图片[2]-使用阿里云OSS搭建随机视频接口-安澜博客](https://blog.zhcnli.cn/wp-content/uploads/2025/01/20250119195256409-1000018862.jpg)
代码
下面是实例代码,将随机转变存储桶里的一个视频文件输出为视频链接形式为Json的数据,就是下面这种。
{ "url": "视频链接"}
<?php
require_once __DIR__.'/vendor/autoload.php';
use OSS\OssClient;
use OSS\Core\OssException;
// 配置信息
$accessKeyId = 'accessKeyId';
$accessKeySecret = 'accessKeySecret';
$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com'; // 根据你的实际 OSS 服务区域修改
$bucket = '存储桶名字';
try {
// 初始化 OssClient
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
// 获取存储桶中的所有视频文件列表
$options = [
'delimiter' => '/',
'prefix' => '/' // 假设所有视频文件都存储在videos文件夹下
];
$result = $ossClient->listObjects($bucket, $options);
$objectKeys = [];
foreach ($result->getObjectList() as $objectInfo) {
$objectKeys[] = $objectInfo->getKey();
}
// 随机选择一个视频文件
if (empty($objectKeys)) {
throw new OssException('No video files found in the bucket.');
}
$randomKey = $objectKeys[array_rand($objectKeys)];
// 生成签名 URL,设置较长的过期时间,例如30天
$expireTime = 30 * 24 * 60 * 60;
$signedUrl = $ossClient->signUrl($bucket, $randomKey, $expireTime);
// 去除返回链接中的无用参数
$parsedUrl = parse_url($signedUrl);
unset($parsedUrl['query']); // 去除查询参数
$cleanUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'] . $parsedUrl['path'];
// 返回JSON格式的数据
$response = [
'url' => $cleanUrl
];
header('Content-Type: application/json');
echo json_encode($response);
} catch (OssException $e) {
http_response_code(500);
echo json_encode(['error' => $e->getMessage()]);
}
?>
里面的$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com'; 这个可以根据你的存储桶位置来改,比如shanghai上海,hangzhou杭州,这就是各个地域的拼音以此类推。
$expireTime = 是视频链接过期时间,当前时间戳与签名URL的过期时间之和不能超过9223372036854775807,否则会溢出报错。
accessKeyId 在AccessKey获取
accessKeySecret 在AccessKey获取,可以根据下面图片提示进行操作。
![图片[3]-使用阿里云OSS搭建随机视频接口-安澜博客](https://blog.zhcnli.cn/wp-content/uploads/2025/01/20250119202319723-1000018912.png)
![图片[4]-使用阿里云OSS搭建随机视频接口-安澜博客](https://blog.zhcnli.cn/wp-content/uploads/2025/01/20250119202328147-1000018913.png)
暂无评论内容