项目地址: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); }