PHP短视频源码,阿里云云存储OSS功能介绍
阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、HPC 和 Docker 等计算节点的文件存储服务。对PHP短视频源码来说,同样离不开云存储的帮助,用户的各类信息、平台的短视频系统内容、直播的录像等都需要很大的储存空间,为了节省自己服务器的开发、配置费用,一般都采用云存储的方式。
1、前期准备:
a登录阿里云,进入对象存储OSS界面,地址如下
https://oss.console.aliyun.com/bucket/oss-cn-shenzhen/mmcele/overview
b创建bucket(存储空间名称),并记录地域节点、bucket域名,后边会用到,如图一
c点击:文件管理:创建需要的文件目录,用来存储需要上传的文件,如图一
d获取阿里云存储相关信息,以下信息根据各自需求可配置,也可直接写在代码中。
2、功能实现:
PHP短视频源码在上传方式上,先再七牛、腾讯云上传,前者需要上传到本地服务器,然后再上传到阿里云服务器,后两者可直接上传到云服务器
a上传文件到本地服务器,代码如下:
$savepath='videolinshi/'; //上传处理类 $config=array( 'rootPath' => './'.C("UPLOADPATH"), 'savePath' => $savepath, 'maxSize' => 1024*1024*200, 'saveName'=> array('uniqid',''), 'exts' =>array('jpg', 'gif', 'png', 'jpeg',"flv",'mp4'), 'autoSub' => false,); $upload = new \Think\Upload($config,"Local"); $info=$upload->upload(); //开始上传 if ($info) { //上传成功,写入附件数据库信息 $first=array_shift($info); if(!empty($first['url'])){ $url=$first['url']; }else{ $url=C("TMPL_PARSE_STRING.__UPLOAD__").$savepath.$first['savename']; } } else { $this->error("上传失败"); }
得到本地服务器文件地址:$url
b配置阿里云存储信息,将本地服务器文件上传到阿里云服务器,代码如下
require(SITE_PATH.'api/public/aliyunoss/autoload.php'); // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 $accessKeyId ="sdfadsfsd"; $accessKeySecret ="sdfasdfdsd"; // Endpoint:深圳 根据需求配置所在区域的endpoint $endpoint = "http://oss-cn-shenzhen.aliyuncs.com"; $bucketpoit = "http://bucketname.oss-cn-shenzhen.aliyuncs.com"; // 存储空间名称 $bucket="bucketname"; // 文件名称 $object = "upload/back/".$first["savename"];//注意这里如果需要上传到置顶目录,需要拼接一下 // <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt try{ $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->uploadFile($bucket, $object,SITE_PATH.$url); } catch(OssException $e) { $this->error(json_encode($e->getMessage())); } $url =$bucketpoit."/".$object;//阿里云服务器文件地址
到此,PHP短视频源码的对象存储完成。
如有不明白的可查看阿里云上传文档,文档地址如下:
https://help.aliyun.com/document_detail/88475.html?spm=a2c4g.11186623.6.1022.333e69cbtykSfB
以下api代码:
//本地上传 //设置上传路径 设置方法参考3.2 DI()->ucloud->set('save_path','videolinshi/'.date("Ymd")); //新增修改文件名设置上传的文件名称 // DI()->ucloud->set('file_name', $this->uid); //上传表单名 $res = DI()->ucloud->upfile($_FILES['file']); $files='../upload'.$res['file']; $newfiles=str_replace(".png","_thumb.png",$files); $newfiles=str_replace(".jpg","_thumb.jpg",$newfiles); $newfiles=str_replace(".gif","_thumb.gif",$newfiles); $PhalApi_Image = new Image_Lite(); //打开图片 $PhalApi_Image->open($files); $resarray=explode("/",$res['file']); $PhalApi_Image->thumb(660, 660, IMAGE_THUMB_SCALING); $PhalApi_Image->save($files); $PhalApi_Image->thumb(200, 200, IMAGE_THUMB_SCALING); $PhalApi_Image->save($newfiles); $avatar= API_ROOT.$files; //600 X 600 $avatar_thumb=str_replace(".png","_thumb.png",$avatar); $avatar_thumb=str_replace(".jpg","_thumb.jpg",$avatar_thumb); $avatar_thumb=str_replace(".gif","_thumb.gif",$avatar_thumb); // 阿里云配置信息/ require_once API_ROOT.'/../simplewind/Lib/Extend/aliyunoss/autoload.php'; /* use OSS\OssClient; use OSS\Core\OssException; */ // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 $accessKeyId = DI()->config->get('app.Aliyun.accessKeyId');//"rlzjzqe3AF2yvfdl";// $configpri['alicloud_keyid']; $accessKeySecret =DI()->config->get('app.Aliyun.accessKeySecret');//"HMvJA6OMPygEQqqKyAaGwy37WbtSEm";//$configpri['alicloud_secret_key']; //Endpoint:深圳。 $endpoint = DI()->config->get('app.Aliyun.endpoint');//"http://oss-cn-shenzhen.aliyuncs.com"; $bucketpoit = DI()->config->get('app.Aliyun.bucketpoit');//"http://mmcele.oss-cn-shenzhen.aliyuncs.com"; //存储空间名称 $bucket=DI()->config->get('app.Aliyun.bucket');//"mmcele";//$configpri['alicloud_bucket'];//upload // 文件名称 // $object = DI()->config->get('app.Aliyun.object');//"upload/back/".$resarray[3]; $object ="upload/back/".$resarray[3]; // <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt try{ $configpub=getConfigPub(); $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->uploadFile($bucket, $object,API_ROOT."/upload/".$res['file']); unlink(API_ROOT."/upload/".$res['file']);//删除临时文件 } catch(OssException $e) { $rs['code'] = 1003; $rs['msg'] = $e->getMessage(); return $rs; } $url =$bucketpoit."/".$object; $data=array( "avatar"=>$url, "avatar_thumb"=>$url, ); $data2=array( "avatar"=>$url, "avatar_thumb"=>$url, ); }
PHP短视频源码对储存的需求已经是不可或缺的地步,服务器方面的费用支出已经是运营商们必须要用到的,在云存储方面的支持也是各位运营商有必要了解的,想要了解更多的相关内容可以关注之后的文章。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com