发布于日记
又拍云提供了云处理的文档,其中包括视频音频剪辑、远程下载、在线压缩解压等,在国内云服务算是比较领先的了。
工作需要,恰好按照文档整理出一个php类,只有在线压缩解压和异步文件拉取(远程下载)。其它音频剪辑等没需求,就没去做。
代码还有一些优化空间,比如tasks和提交parameter格式,也许也可以单独从每个函数中拆封出来,但是不太清楚又拍云的每一个请求是不是格式都一样,看了下视频就有一些不一样,所以没有拆分。代码直接复制保存就可以用,其中的函数作用也备注出来了,小白估计都能理解。
少说废话,上代码:
<?php
class upyun{
public $operator_name;
public $bucket_name;
public $operator_password_md5;
public $notify_url;
public function __construct($bucket_name, $operator_name, $operator_password_md5, $notify_url){
$this->operator_name = $operator_name;
$this->operator_password_md5 = $operator_password_md5;
$this->notify_url = $notify_url;
$this->bucket_name = $bucket_name;
}
/* 异步文件拉取 */
public function spider($url, $save_as, $random=false, $overwrite=true){
# tasks格式
$tasks[] = array(
'url' => $url,
'save_as' => $save_as,
'random' => $random,
'overwrite' => $overwrite
);
= (());
= (
=> ->bucket_name,
=> ->notify_url,
=> ,
=> ,
);
= ();
[] = ->(->operator_name, ->operator_password_md5, );
= ->(, , );
= (, );
[] != ? [] : ;
}
{
[] = (
=> ,
=> ,
=>
);
= (());
= (
=> ->bucket_name,
=> ->notify_url,
=> ,
=> ,
);
= ();
[] = ->(->operator_name, ->operator_password_md5, );
= ->(, , );
= (, );
[] != ? [] : ;
}
{
[] = (
=> ,
=>
);
= (());
= (
=> ->bucket_name,
=> ->notify_url,
=> ,
=> ,
);
= ();
[] = ->(->operator_name, ->operator_password_md5, );
= ->(, , );
= (, );
[] != ? [] : ;
}
{
= ->();
= ;
( =>){
.= .;
}
= (..);
= . ..;
;
}
{
();
;
}
{
= ();
( =>){
[] = ..;
}
= (,);
;
}
{
= ->();
= ();
(, CURLOPT_URL,);
(, CURLOPT_POSTFIELDS,);
(, CURLOPT_HEADER, );
(, CURLOPT_SSL_VERIFYPEER, );
(, CURLOPT_SSL_VERIFYHOST, );
(, CURLOPT_HTTPHEADER, );
(, CURLOPT_RETURNTRANSFER,);
= ();
= (, CURLINFO_HEADER_SIZE);
= (, );
();
;
}
}