141 lines
4.7 KiB
PHP
141 lines
4.7 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace OSS\Tests;
|
||
|
|
||
|
use OSS\Core\OssException;
|
||
|
use OSS\OssClient;
|
||
|
|
||
|
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestOssClientBase.php';
|
||
|
|
||
|
|
||
|
class OssClientBucketTest extends TestOssClientBase
|
||
|
{
|
||
|
private $standardBucket;
|
||
|
private $iaBucket;
|
||
|
private $archiveBucket;
|
||
|
|
||
|
public function testBucketWithInvalidName()
|
||
|
{
|
||
|
try {
|
||
|
$this->ossClient->createBucket("s");
|
||
|
$this->assertFalse(true);
|
||
|
} catch (OssException $e) {
|
||
|
$this->assertEquals('"s"bucket name is invalid', $e->getMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function testBucketWithInvalidACL()
|
||
|
{
|
||
|
try {
|
||
|
$this->ossClient->createBucket($this->bucket, "invalid");
|
||
|
$this->assertFalse(true);
|
||
|
} catch (OssException $e) {
|
||
|
$this->assertEquals('invalid:acl is invalid(private,public-read,public-read-write)', $e->getMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function testBucket()
|
||
|
{
|
||
|
$this->ossClient->createBucket($this->bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE);
|
||
|
|
||
|
$bucketListInfo = $this->ossClient->listBuckets();
|
||
|
$this->assertNotNull($bucketListInfo);
|
||
|
|
||
|
$bucketList = $bucketListInfo->getBucketList();
|
||
|
$this->assertTrue(is_array($bucketList));
|
||
|
$this->assertGreaterThan(0, count($bucketList));
|
||
|
|
||
|
$this->ossClient->putBucketAcl($this->bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE);
|
||
|
Common::waitMetaSync();
|
||
|
$this->assertEquals($this->ossClient->getBucketAcl($this->bucket), OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE);
|
||
|
|
||
|
$this->assertTrue($this->ossClient->doesBucketExist($this->bucket));
|
||
|
$this->assertFalse($this->ossClient->doesBucketExist($this->bucket . '-notexist'));
|
||
|
|
||
|
$this->assertEquals($this->ossClient->getBucketLocation($this->bucket), Common::getRegion());
|
||
|
|
||
|
$res = $this->ossClient->getBucketMeta($this->bucket);
|
||
|
$this->assertEquals('200', $res['info']['http_code']);
|
||
|
$this->assertEquals(Common::getRegion(), $res['x-oss-bucket-region']);
|
||
|
}
|
||
|
|
||
|
public function testCreateBucketWithStorageType()
|
||
|
{
|
||
|
$object = 'storage-object';
|
||
|
|
||
|
$this->ossClient->putObject($this->archiveBucket, $object,'testcontent');
|
||
|
try {
|
||
|
$this->ossClient->getObject($this->archiveBucket, $object);
|
||
|
$this->assertTrue(false);
|
||
|
} catch (OssException $e) {
|
||
|
$this->assertEquals('403', $e->getHTTPStatus());
|
||
|
$this->assertEquals('InvalidObjectState', $e->getErrorCode());
|
||
|
}
|
||
|
|
||
|
$this->ossClient->putObject($this->iaBucket, $object,'testcontent');
|
||
|
$result = $this->ossClient->getObject($this->iaBucket, $object);
|
||
|
$this->assertEquals($result, 'testcontent');
|
||
|
|
||
|
$this->ossClient->putObject($this->bucket, $object,'testcontent');
|
||
|
$result = $this->ossClient->getObject($this->bucket, $object);
|
||
|
$this->assertEquals($result, 'testcontent');
|
||
|
}
|
||
|
|
||
|
public function testCreateBucketWithInvalidStorageType()
|
||
|
{
|
||
|
try {
|
||
|
$options = array(
|
||
|
OssClient::OSS_STORAGE => 'unknown'
|
||
|
);
|
||
|
$this->ossClient->createBucket('bucket-name', OssClient::OSS_ACL_TYPE_PRIVATE, $options);
|
||
|
$this->assertTrue(false);
|
||
|
} catch (OssException $e) {
|
||
|
$this->assertTrue(true);
|
||
|
if (strpos($e, "storage name is invalid") == false)
|
||
|
{
|
||
|
$this->assertTrue(false);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected function setUp(): void
|
||
|
{
|
||
|
parent::setUp();
|
||
|
|
||
|
$this->iaBucket = 'ia-' . $this->bucket;
|
||
|
$this->archiveBucket = 'archive-' . $this->bucket;
|
||
|
$this->standardBucket = 'standard-' . $this->bucket;
|
||
|
|
||
|
$options = array(
|
||
|
OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA
|
||
|
);
|
||
|
|
||
|
$this->ossClient->createBucket($this->iaBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options);
|
||
|
|
||
|
$options = array(
|
||
|
OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_ARCHIVE
|
||
|
);
|
||
|
|
||
|
$this->ossClient->createBucket($this->archiveBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options);
|
||
|
|
||
|
$options = array(
|
||
|
OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_STANDARD
|
||
|
);
|
||
|
|
||
|
$this->ossClient->createBucket($this->standardBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options);
|
||
|
}
|
||
|
|
||
|
protected function tearDown(): void
|
||
|
{
|
||
|
parent::tearDown();
|
||
|
|
||
|
$object = 'storage-object';
|
||
|
|
||
|
$this->ossClient->deleteObject($this->iaBucket, $object);
|
||
|
$this->ossClient->deleteObject($this->archiveBucket, $object);
|
||
|
$this->ossClient->deleteBucket($this->iaBucket);
|
||
|
$this->ossClient->deleteBucket($this->archiveBucket);
|
||
|
$this->ossClient->deleteBucket($this->standardBucket);
|
||
|
}
|
||
|
}
|