不仅可以控制下载速度,也因分段读取减少了资源加载等待时间,代码简化表示如下,均带了注释。
调用oss_down方法,仅需配置oss权限,文件配置,速度配置即可。当然前提需要引入OSS的PHP SDK。
/**
* OSS下载速度控制
* */
public function oss_down()
{
// oss权限配置
$accessKeyId = ''; // accessKeyId
$accessKeySecret = ''; // accessKeySecret
$endpoint = ''; // endpoint区域,建议内网
$bucket = ''; // bucket空间名称
$object = ''; // 存储名称
// 文件配置
$file_size = 1000000; // 文件实际大小,字节
$mime = 'audio/mpeg'; // 文件MIME类型
$fileName = '音乐文件.mp3'; //输出文件名
// 速度配置
$speed = 5; // 按每5M计算,0表示直读oss全文件不限速,但大文件会影响加载速度
$sleep = 1; // 按每1秒计算
// 文件输出
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ranges = $this->get_range($file