data_center/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketTest.php

141 lines
4.7 KiB
PHP
Raw Normal View History

2023-09-18 09:11:13 +08:00
<?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);
}
}