suyuan/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssTrafficLimitTest.php

97 lines
3.2 KiB
PHP
Raw Permalink Normal View History

2023-11-21 11:51:27 +08:00
<?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);
}
}
}