项目地址:https://code.csdn.net/hejinde/qiniu/tree/master
//**********************************************************************
//**api地址:http://developer.qiniu.com/docs/v6/sdk/php-sdk.html
//** Author : jdwd
//**********************************************************************
require_once("rs_utils.php");
require_once("conf.php");
function qiniu_get_key($key_count=0){
$access_list=$GLOBALS["QINIU_ACCESS_LIST"];
$return=$access_list[$key_count];
$return["key_index"]=$key_index;
return$return;
}
//上传文件
functionqiniu_save_file($files=array(),$file_name="",$bucket="cjbuluo"){
$file_name=empty($file_name)?date("YmdHis").".jpg":$file_name;
if(!empty($files['tmp_name'])){
$tmp=$files['tmp_name'];
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
$putPolicy =new Qiniu_RS_PutPolicy($bucket);
$upToken =$putPolicy->Token(null);
$putExtra =new Qiniu_PutExtra();
$putExtra->Crc32 = 1;
list($ret,$err) = Qiniu_PutFile($upToken, $file_name, $tmp, $putExtra);
if ($err !==null) {
return(array)$err;
} else{
$ret["bucket"]=$bucket;
$ret["url"]="http://".$bucket.".qiniudn.com/".$file_name;
return$ret;
}
}else{
returnarray(
"Err"=>"tmp_name is null",
"Code"=>"9999"
);
}
}
//上传字符串
functionqiniu_save_obj($text="",$file_name="",$bucket="cj-text"){
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
$putPolicy =new Qiniu_RS_PutPolicy($bucket);
$upToken =$putPolicy->Token(null);
list($ret,$err) = Qiniu_Put($upToken, $file_name, $text, null);
if ($err !==null) {
return(array)$err;
} else{
$ret["bucket"]=$bucket;
$ret["url"]="http://".$bucket.".qiniudn.com/".$file_name;
return$ret;
}
}
//复制服务器文件
functionqiniu_copy_file($source_name="temp.txt",$source_bucket="cj-text",$from_file_name="temp.txt",$from_bucket="cjbuluo"){
if(empty($source_name)||empty($from_file_name)){
returnarray(
"Err"=>"source or file_name is null",
"Code"=>"9999"
);
}
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
$client =new Qiniu_MacHttpClient(null);
$err =Qiniu_RS_Copy($client, $source_bucket, $source_name, $from_bucket,$from_file_name);
if ($err !==null) {
$err=(array)$err;
$err["Success"]=0;
return$err;
} else{
returnarray(
"Success"=>1
);
}
}
//移动服务器文件
functionqiniu_mnove_file($source_name="temp.txt",$source_bucket="cj-text",$from_file_name="temp.txt",$from_bucket="cjbuluo"){
if(empty($source_name)||empty($from_file_name)){
returnarray(
"Err"=>"source or file_name is null",
"Code"=>"9999"
);
}
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
$client =new Qiniu_MacHttpClient(null);
$err =Qiniu_RS_Move($client, $source_bucket, $source_name, $from_bucket,$from_file_name);
if ($err !==null) {
$err=(array)$err;
$err["Success"]=0;
return$err;
} else{
returnarray(
"Success"=>1
);
}
}
//删除服务器文件
functionqiniu_delete_file($file_name="temp.txt",$bucket="cjbuluo"){
if(empty($file_name)||empty($bucket)){
returnarray(
"Err"=>"file_name is null",
"Code"=>"9999"
);
}
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
$client =new Qiniu_MacHttpClient(null);
$err =Qiniu_RS_Delete($client, $bucket, $file_name);
if ($err !==null) {
$err=(array)$err;
$err["Success"]=0;
return$err;
} else{
returnarray(
"Success"=>1
);
}
}
//查看文件信息
functionqiniu_file_info($file_name="temp.txt",$bucket="cj-text"){
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
$client =new Qiniu_MacHttpClient(null);
list($ret,$err) = Qiniu_RS_Stat($client, $bucket, $file_name);
if ($err !==null) {
$err=(array)$err;
$err["Success"]=0;
return$err;
} else{
$ret=(array)$ret;
$ret["Success"]=1;
return$ret;
}
}
//查看图像属性
functionqiniu_images_info($file_name="temp.jpg",$bucket="cjbuluo"){
if(empty($file_name)||empty($bucket)){
$err["Success"]=0;
$err["Err"]="file_name or bucket is null";
return$err;
}
require_once("fop.php");
$domain =$bucket.'.qiniudn.com';
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
//生成baseUrl
$baseUrl =Qiniu_RS_MakeBaseUrl($domain, $file_name);
//生成fopUrl
$imgInfo =new Qiniu_ImageInfo;
$imgInfoUrl= $imgInfo->MakeRequest($baseUrl);
//对fopUrl进行签名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy =new Qiniu_RS_GetPolicy();
$imgInfoPrivateUrl = $getPolicy->MakeRequest($imgInfoUrl,null);
$json=file_get_contents($imgInfoPrivateUrl);
$info=json_decode($json, true);
$info["url"]=$baseUrl;
return$info;
}
//查看图片EXIF信息
functionqiniu_exif_info($file_name="temp.jpg",$bucket="cjbuluo"){
if(empty($file_name)||empty($bucket)){
$err["Success"]=0;
$err["Err"]="file_name or bucket is null";
return$err;
}
require_once("fop.php");
$domain =$bucket.'.qiniudn.com';
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
//生成baseUrl
$baseUrl =Qiniu_RS_MakeBaseUrl($domain, $file_name);
//生成fopUrl
$imgExif = new Qiniu_Exif;
$imgInfoUrl= $imgExif ->MakeRequest($baseUrl);
//对fopUrl进行签名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy =new Qiniu_RS_GetPolicy();
$imgInfoPrivateUrl = $getPolicy->MakeRequest($imgInfoUrl,null);
$info=array();
$info["exif_url"]=$imgInfoPrivateUrl;
return$info;
}
//生成图片预览
functionqiniu_image_view($file_name="temp.jpg",$bucket="cjbuluo"){
if(empty($file_name)||empty($bucket)){
$err["Success"]=0;
$err["Err"]="file_name or bucket is null";
return$err;
}
require_once("fop.php");
$domain =$bucket.'.qiniudn.com';
$App_Key=qiniu_get_key();
Qiniu_SetKeys($App_Key["ACCESS_KEY"],$App_Key["SECRET_KEY"]);
$baseUrl =Qiniu_RS_MakeBaseUrl($domain, $file_name);
//生成fopUrl
$imgView =new Qiniu_ImageView;
$imgView->Mode = 1;
$imgView->Width = 60;
$imgView->Height = 120;
$imgViewUrl= $imgView->MakeRequest($baseUrl);
//对fopUrl进行签名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy =new Qiniu_RS_GetPolicy();
$imgViewPrivateUrl = $getPolicy->MakeRequest($imgViewUrl,null);
$info=array();
$info["url"]=$imgViewPrivateUrl;
return$info;
}
//获取远程信息并保存
functionqiniu_save_url($url,$filename="temp.jpg",$bucket="cj-text",$type=0){
if($url==''){return false;}
if(empty($filename)){
$ext=strrchr($url,'.');
$filename=date("YmdHis").$ext;
}
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
}
returnqiniu_save_obj($img,$filename,$bucket);
}