97 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			97 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace OSS\Tests; | ||
|  | 
 | ||
|  | use OSS\Core\OssException; | ||
|  | use OSS\Http\RequestCore; | ||
|  | use OSS\Http\ResponseCore; | ||
|  | use OSS\OssClient; | ||
|  | 
 | ||
|  | require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestOssClientBase.php'; | ||
|  | 
 | ||
|  | 
 | ||
|  | class OssTrafficLimitTest extends TestOssClientBase | ||
|  | { | ||
|  |     function testTrafficLimitInHeader() | ||
|  |     { | ||
|  |         $options = array( | ||
|  |             OssClient::OSS_HEADERS => array( | ||
|  |                 OssClient::OSS_TRAFFIC_LIMIT => 819200, | ||
|  |         )); | ||
|  | 
 | ||
|  |         try { | ||
|  |             $result = $this->ossClient->putObject($this->bucket, 'default-object', 'content', $options); | ||
|  |             $this->assertTrue(true); | ||
|  |             $this->assertTrue(isset($result["x-oss-qos-delay-time"])); | ||
|  |         } catch (OssException $e) { | ||
|  |             $this->assertTrue(false); | ||
|  |         } | ||
|  | 
 | ||
|  |         try { | ||
|  |     		$result = $this->ossClient->appendObject($this->bucket, 'append-object', 'content', 0, $options); | ||
|  |             $this->assertTrue(true); | ||
|  |         } catch (OssException $e) { | ||
|  |             $this->assertTrue(false); | ||
|  |         } | ||
|  | 
 | ||
|  |         try { | ||
|  |     		$result = $this->ossClient->copyObject($this->bucket, 'default-object', $this->bucket, 'copy-object', $options); | ||
|  |             $this->assertTrue(true); | ||
|  |         } catch (OssException $e) { | ||
|  |             $this->assertTrue(false); | ||
|  |         } | ||
|  | 
 | ||
|  |         try { | ||
|  |             $result = $this->ossClient->getObject($this->bucket, 'default-object', $options); | ||
|  |             $this->assertTrue(true); | ||
|  |         } catch (OssException $e) { | ||
|  |             $this->assertTrue(false); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function testTrafficLimitInQuery() | ||
|  |     { | ||
|  |         $options = array( | ||
|  |             OssClient::OSS_TRAFFIC_LIMIT => 819200, | ||
|  |         ); | ||
|  | 
 | ||
|  |         $object = "get.file"; | ||
|  |         $content = 'hello world'; | ||
|  |         $this->ossClient->putObject($this->bucket, $object, $content); | ||
|  |         $timeout = 3600; | ||
|  |         try { | ||
|  |             $signedUrl = $this->ossClient->signUrl($this->bucket, $object, $timeout, "GET", $options); | ||
|  |             $this->assertTrue(stripos($signedUrl, 'x-oss-traffic-limit=819200') > 0); | ||
|  |         } catch (OssException $e) { | ||
|  |             $this->assertFalse(true); | ||
|  |         } | ||
|  | 
 | ||
|  |         $request = new RequestCore($signedUrl); | ||
|  |         $request->set_method('GET'); | ||
|  |         $request->add_header('Content-Type', ''); | ||
|  |         $request->send_request(); | ||
|  |         $res = new ResponseCore($request->get_response_header(), $request->get_response_body(), $request->get_response_code()); | ||
|  |         $this->assertEquals($content, $res->body); | ||
|  | 
 | ||
|  | 
 | ||
|  |         $object = "put.file"; | ||
|  |         $timeout = 3600; | ||
|  |         try { | ||
|  |             $signedUrl = $this->ossClient->signUrl($this->bucket, $object, $timeout, "PUT", $options); | ||
|  |             $this->assertTrue(stripos($signedUrl, 'x-oss-traffic-limit=819200') > 0); | ||
|  | 
 | ||
|  |             $request = new RequestCore($signedUrl); | ||
|  |             $request->set_method('PUT'); | ||
|  |             $request->add_header('Content-Type', ''); | ||
|  |             $request->add_header('Content-Length', strlen($content)); | ||
|  |             $request->set_body($content); | ||
|  |             $request->send_request(); | ||
|  |             $res = new ResponseCore($request->get_response_header(), | ||
|  |                 $request->get_response_body(), $request->get_response_code()); | ||
|  |             $this->assertTrue($res->isOK()); | ||
|  |         } catch (OssException $e) { | ||
|  |             $this->assertFalse(true); | ||
|  |         } | ||
|  |     } | ||
|  | } |