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);
|
||
|
}
|
||
|
}
|
||
|
}
|