| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 | 
							- <?php
 
- require_once("http.php");
 
- // ----------------------------------------------------------
 
- // class Qiniu_RS_GetPolicy
 
- class Qiniu_RS_GetPolicy
 
- {
 
- 	public $Expires;
 
- 	public function MakeRequest($baseUrl, $mac) // => $privateUrl
 
- 	{
 
- 		$deadline = $this->Expires;
 
- 		if ($deadline == 0) {
 
- 			$deadline = 3600;
 
- 		}
 
- 		$deadline += time();
 
- 		$pos = strpos($baseUrl, '?');
 
- 		if ($pos !== false) {
 
- 			$baseUrl .= '&e=';
 
- 		} else {
 
- 			$baseUrl .= '?e=';
 
- 		}
 
- 		$baseUrl .= $deadline;
 
- 		$token = Qiniu_Sign($mac, $baseUrl);
 
- 		return "$baseUrl&token=$token";
 
- 	}
 
- }
 
- function Qiniu_RS_MakeBaseUrl($domain, $key) // => $baseUrl
 
- {
 
- 	$keyEsc = str_replace("%2F", "/", rawurlencode($key));
 
- 	return "http://$domain/$keyEsc";
 
- }
 
- // --------------------------------------------------------------------------------
 
- // class Qiniu_RS_PutPolicy
 
- class Qiniu_RS_PutPolicy
 
- {
 
- 	public $Scope;                  //必填
 
- 	public $Expires;                //默认为3600s
 
- 	public $CallbackUrl;
 
- 	public $CallbackBody;
 
- 	public $ReturnUrl;
 
- 	public $ReturnBody;
 
- 	public $AsyncOps;
 
- 	public $EndUser;
 
- 	public $InsertOnly;             //若非0,则任何情况下无法覆盖上传
 
- 	public $DetectMime;             //若非0,则服务端根据内容自动确定MimeType
 
- 	public $FsizeLimit;
 
- 	public $SaveKey;
 
- 	public $PersistentOps;
 
- 	public $PersistentPipeline;
 
- 	public $PersistentNotifyUrl;
 
- 	public $FopTimeout;
 
- 	public $MimeLimit;
 
- 	public function __construct($scope)
 
- 	{
 
- 		$this->Scope = $scope;
 
- 	}
 
- 	public function Token($mac) // => $token
 
- 	{
 
- 		$deadline = $this->Expires;
 
- 		if ($deadline == 0) {
 
- 			$deadline = 3600;
 
- 		}
 
- 		$deadline += time();
 
- 		$policy = array('scope' => $this->Scope, 'deadline' => $deadline);
 
- 		if (!empty($this->CallbackUrl)) {
 
- 			$policy['callbackUrl'] = $this->CallbackUrl;
 
- 		}
 
- 		if (!empty($this->CallbackBody)) {
 
- 			$policy['callbackBody'] = $this->CallbackBody;
 
- 		}
 
- 		if (!empty($this->ReturnUrl)) {
 
- 			$policy['returnUrl'] = $this->ReturnUrl;
 
- 		}
 
- 		if (!empty($this->ReturnBody)) {
 
- 			$policy['returnBody'] = $this->ReturnBody;
 
- 		}
 
- 		if (!empty($this->AsyncOps)) {
 
- 			$policy['asyncOps'] = $this->AsyncOps;
 
- 		}
 
- 		if (!empty($this->EndUser)) {
 
- 			$policy['endUser'] = $this->EndUser;
 
- 		}
 
- 		if (!empty($this->InsertOnly)) {
 
- 			$policy['exclusive'] = $this->InsertOnly;
 
- 		}
 
- 		if (!empty($this->DetectMime)) {
 
- 			$policy['detectMime'] = $this->DetectMime;
 
- 		}
 
- 		if (!empty($this->FsizeLimit)) {
 
- 			$policy['fsizeLimit'] = $this->FsizeLimit;
 
- 		}
 
- 		if (!empty($this->SaveKey)) {
 
- 			$policy['saveKey'] = $this->SaveKey;
 
- 		}
 
- 		if (!empty($this->PersistentOps)) {
 
- 			$policy['persistentOps'] = $this->PersistentOps;
 
- 		}
 
- 		if (!empty($this->PersistentPipeline)) {
 
- 			$policy['persistentPipeline'] = $this->PersistentPipeline;
 
- 		}
 
- 		if (!empty($this->PersistentNotifyUrl)) {
 
- 			$policy['persistentNotifyUrl'] = $this->PersistentNotifyUrl;
 
- 		}
 
- 		if (!empty($this->FopTimeout)) {
 
- 			$policy['fopTimeout'] = $this->FopTimeout;
 
- 		}
 
- 		if (!empty($this->MimeLimit)) {
 
- 			$policy['mimeLimit'] = $this->MimeLimit;
 
- 		}
 
- 		$b = json_encode($policy);
 
- 		return Qiniu_SignWithData($mac, $b);
 
- 	}
 
- }
 
- // ----------------------------------------------------------
 
- // class Qiniu_RS_EntryPath
 
- class Qiniu_RS_EntryPath
 
- {
 
- 	public $bucket;
 
- 	public $key;
 
- 	public function __construct($bucket, $key)
 
- 	{
 
- 		$this->bucket = $bucket;
 
- 		$this->key = $key;
 
- 	}
 
- }
 
- // ----------------------------------------------------------
 
- // class Qiniu_RS_EntryPathPair
 
- class Qiniu_RS_EntryPathPair
 
- {
 
- 	public $src;
 
- 	public $dest;
 
- 	public function __construct($src, $dest)
 
- 	{
 
- 		$this->src = $src;
 
- 		$this->dest = $dest;
 
- 	}
 
- }
 
- // ----------------------------------------------------------
 
- function Qiniu_RS_URIStat($bucket, $key)
 
- {
 
- 	return '/stat/' . Qiniu_Encode("$bucket:$key");
 
- }
 
- function Qiniu_RS_URIDelete($bucket, $key)
 
- {
 
- 	return '/delete/' . Qiniu_Encode("$bucket:$key");
 
- }
 
- function Qiniu_RS_URICopy($bucketSrc, $keySrc, $bucketDest, $keyDest)
 
- {
 
- 	return '/copy/' . Qiniu_Encode("$bucketSrc:$keySrc") . '/' . Qiniu_Encode("$bucketDest:$keyDest");
 
- }
 
- function Qiniu_RS_URIMove($bucketSrc, $keySrc, $bucketDest, $keyDest)
 
- {
 
- 	return '/move/' . Qiniu_Encode("$bucketSrc:$keySrc") . '/' . Qiniu_Encode("$bucketDest:$keyDest");
 
- }
 
- // ----------------------------------------------------------
 
- function Qiniu_RS_Stat($self, $bucket, $key) // => ($statRet, $error)
 
- {
 
- 	global $QINIU_RS_HOST;
 
- 	$uri = Qiniu_RS_URIStat($bucket, $key);
 
- 	return Qiniu_Client_Call($self, $QINIU_RS_HOST . $uri);
 
- }
 
- function Qiniu_RS_Delete($self, $bucket, $key) // => $error
 
- {
 
- 	global $QINIU_RS_HOST;
 
- 	$uri = Qiniu_RS_URIDelete($bucket, $key);
 
- 	return Qiniu_Client_CallNoRet($self, $QINIU_RS_HOST . $uri);
 
- }
 
- function Qiniu_RS_Move($self, $bucketSrc, $keySrc, $bucketDest, $keyDest) // => $error
 
- {
 
- 	global $QINIU_RS_HOST;
 
- 	$uri = Qiniu_RS_URIMove($bucketSrc, $keySrc, $bucketDest, $keyDest);
 
- 	return Qiniu_Client_CallNoRet($self, $QINIU_RS_HOST . $uri);
 
- }
 
- function Qiniu_RS_Copy($self, $bucketSrc, $keySrc, $bucketDest, $keyDest) // => $error
 
- {
 
- 	global $QINIU_RS_HOST;
 
- 	$uri = Qiniu_RS_URICopy($bucketSrc, $keySrc, $bucketDest, $keyDest);
 
- 	return Qiniu_Client_CallNoRet($self, $QINIU_RS_HOST . $uri);
 
- }
 
- // ----------------------------------------------------------
 
- // batch
 
- function Qiniu_RS_Batch($self, $ops) // => ($data, $error)
 
- {
 
- 	global $QINIU_RS_HOST;
 
- 	$url = $QINIU_RS_HOST . '/batch';
 
- 	$params = 'op=' . implode('&op=', $ops);
 
- 	return Qiniu_Client_CallWithForm($self, $url, $params);
 
- }
 
- function Qiniu_RS_BatchStat($self, $entryPaths)
 
- {
 
- 	$params = array();
 
- 	foreach ($entryPaths as $entryPath) {
 
- 		$params[] = Qiniu_RS_URIStat($entryPath->bucket, $entryPath->key);
 
- 	}
 
- 	return Qiniu_RS_Batch($self,$params);
 
- }
 
- function Qiniu_RS_BatchDelete($self, $entryPaths)
 
- {
 
- 	$params = array();
 
- 	foreach ($entryPaths as $entryPath) {
 
- 		$params[] = Qiniu_RS_URIDelete($entryPath->bucket, $entryPath->key);
 
- 	}
 
- 	return Qiniu_RS_Batch($self, $params);
 
- }
 
- function Qiniu_RS_BatchMove($self, $entryPairs)
 
- {
 
- 	$params = array();
 
- 	foreach ($entryPairs as $entryPair) {
 
- 		$src = $entryPair->src;
 
- 		$dest = $entryPair->dest;
 
- 		$params[] = Qiniu_RS_URIMove($src->bucket, $src->key, $dest->bucket, $dest->key);
 
- 	}
 
- 	return Qiniu_RS_Batch($self, $params);
 
- }
 
- function Qiniu_RS_BatchCopy($self, $entryPairs)
 
- {
 
- 	$params = array();
 
- 	foreach ($entryPairs as $entryPair) {
 
- 		$src = $entryPair->src;
 
- 		$dest = $entryPair->dest;
 
- 		$params[] = Qiniu_RS_URICopy($src->bucket, $src->key, $dest->bucket, $dest->key);
 
- 	}
 
- 	return Qiniu_RS_Batch($self, $params);
 
- }
 
- // ----------------------------------------------------------
 
 
  |