DOMAIN = $config['domain']; $this->APP_ACCESS_KEY = $config['access_key']; $this->APP_SECRET_KEY = $config['secret_key']; $this->BUCKET = $config['bucket']; $this->CALLBACK = $config['callback']; Qiniu_SetKeys($this->APP_ACCESS_KEY, $this->APP_SECRET_KEY); } /** * 获取私有资源的URL * * @param unknown $key * @return string */ public function getUrl($key) { $baseUrl = Qiniu_RS_MakeBaseUrl($this->DOMAIN, $key); $getPolicy = new Qiniu_RS_GetPolicy(); $privateUrl = $getPolicy->MakeRequest($baseUrl, null); return $privateUrl; } /** * 获取Token * * @param string $bucket * @return string */ public function get_upload_token($uid,$attribute,$offline_result) { $uinqid = uniqid() . mt_rand(1, 10000); $key = $uid."/".$uinqid . '.jpg'; $params = array( 'expires_in' => 2592000, // 直传七牛token过期时间(s) 'callback_url' => $this->CALLBACK, // 客户端直传后回调地址(七牛引导过来的) 'callback_body' => 'key='.$key.'&uid='.$uid.'&offline_result='.$offline_result.'&attribute='.$attribute ); $putPolicy = new Qiniu_RS_PutPolicy($this->BUCKET, $params); $token = $putPolicy->Token(null); if (! $token) { // 获取七牛直传token失败时返回给客户端 $return_data = array( 'upload_token' => '' ); } else { $return_data = array( 'upload_token' => $token, 'key' => $key, 'expires_at' => 2592000 + time() ); } return $return_data; } public function upload($key, $token, $file) { require_once ("qiniu/io.php"); $putExtra = new Qiniu_PutExtra(); list ($ret, $err) = Qiniu_PutFile($token, $key, $file, $putExtra); if ($err !== null) { echo json_encode($err); } else { echo json_encode($ret); } } }