| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- if (! defined('IS_INITPHP'))
- exit('Access Denied!');
- require_once ("qiniu/rs.php");
- /**
- * 七牛的类封装,包括上传的授权token获取,私有资源URL的获取以及文件上传
- *
- * @author Chen Deben
- * @copyright Meitu
- */
- class qiniuInit {
- private $APP_ACCESS_KEY;
- private $APP_SECRET_KEY;
- private $DOMAIN;
- private $BUCKET;
- private $CALLBACK;
- public function __construct() {
- $config = InitPHP::getConfig();
- $config = $config['qiniu'];
- $this->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);
- }
- }
- }
|