提交
This commit is contained in:
242
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientAccessPointTest.php
vendored
Normal file
242
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientAccessPointTest.php
vendored
Normal file
@@ -0,0 +1,242 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientAccessPointTest extends TestIntegration
|
||||
{
|
||||
public function testAccessPoint()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
// CreateAccessPoint
|
||||
$accessPointName = 'ap-01-' . strval(rand(0, 100)) . '-' . strval(time());
|
||||
$createResult = $client->createAccessPoint(new Oss\Models\CreateAccessPointRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\CreateAccessPointConfiguration(
|
||||
accessPointName: $accessPointName,
|
||||
networkOrigin: 'internet',
|
||||
)));
|
||||
$this->assertEquals(200, $createResult->statusCode);
|
||||
$this->assertEquals('OK', $createResult->status);
|
||||
$this->assertEquals(True, count($createResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($createResult->requestId));
|
||||
|
||||
// GetAccessPoint
|
||||
$getResult = $client->getAccessPoint(new Oss\Models\GetAccessPointRequest(
|
||||
$bucketName, $accessPointName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// ListAccessPoints
|
||||
$listResult = $client->listAccessPoints(new Oss\Models\ListAccessPointsRequest());
|
||||
$this->assertEquals(200, $listResult->statusCode);
|
||||
$this->assertEquals('OK', $listResult->status);
|
||||
$this->assertEquals(True, count($listResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($listResult->requestId));
|
||||
|
||||
// PutAccessPointPolicy
|
||||
$policy = '{"Version":"1","Statement":[{"Action":["oss:PutObject","oss:GetObject"],"Effect":"Deny","Principal":["' . self::$USER_ID . '"],"Resource":["acs:oss:' . self::$REGION . ':' . self::$USER_ID . ':accesspoint/' . $accessPointName . '","acs:oss:' . self::$REGION . ':' . self::$USER_ID . ':accesspoint/' . $accessPointName . '/object/*"]}]}';
|
||||
$putPolicyResult = $client->putAccessPointPolicy(new Oss\Models\PutAccessPointPolicyRequest(
|
||||
bucket: $bucketName,
|
||||
accessPointName: $accessPointName,
|
||||
body: Oss\Utils::streamFor($policy)
|
||||
));
|
||||
$this->assertEquals(200, $putPolicyResult->statusCode);
|
||||
$this->assertEquals('OK', $putPolicyResult->status);
|
||||
$this->assertEquals(True, count($putPolicyResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putPolicyResult->requestId));
|
||||
|
||||
// GetAccessPointPolicy
|
||||
$getPolicyResult = $client->getAccessPointPolicy(new Oss\Models\GetAccessPointPolicyRequest(
|
||||
bucket: $bucketName,
|
||||
accessPointName: $accessPointName,
|
||||
));
|
||||
$this->assertEquals(200, $getPolicyResult->statusCode);
|
||||
$this->assertEquals('OK', $getPolicyResult->status);
|
||||
$this->assertEquals(True, count($getPolicyResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getPolicyResult->requestId));
|
||||
$this->assertEquals($policy, $getPolicyResult->body);
|
||||
|
||||
// DeleteAccessPointPolicy
|
||||
$delPolicyResult = $client->deleteAccessPointPolicy(new Oss\Models\DeleteAccessPointPolicyRequest(
|
||||
bucket: $bucketName,
|
||||
accessPointName: $accessPointName,
|
||||
));
|
||||
$this->assertEquals(204, $delPolicyResult->statusCode);
|
||||
$this->assertEquals('No Content', $delPolicyResult->status);
|
||||
$this->assertEquals(True, count($delPolicyResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delPolicyResult->requestId));
|
||||
while (true) {
|
||||
$getResult = $client->getAccessPoint(new Oss\Models\GetAccessPointRequest(
|
||||
$bucketName, $accessPointName
|
||||
));
|
||||
if ($getResult->getAccessPoint->status != 'creating') {
|
||||
break;
|
||||
} else {
|
||||
sleep(3);
|
||||
}
|
||||
}
|
||||
$delResult = $client->deleteAccessPoint(new Oss\Models\DeleteAccessPointRequest(
|
||||
bucket: $bucketName,
|
||||
accessPointName: $accessPointName,
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testAccessPointFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// CreateAccessPoint
|
||||
try {
|
||||
$accessPointName = 'ap-01-' . strval(rand(0, 100)) . '-' . strval(time());
|
||||
$createResult = $client->createAccessPoint(new Oss\Models\CreateAccessPointRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\CreateAccessPointConfiguration(
|
||||
accessPointName: $accessPointName,
|
||||
networkOrigin: 'internet',
|
||||
)));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CreateAccessPoint', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetAccessPoint
|
||||
try {
|
||||
$getResult = $client->getAccessPoint(new Oss\Models\GetAccessPointRequest(
|
||||
$bucketName, $accessPointName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetAccessPoint', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// ListAccessPoints
|
||||
try {
|
||||
$listResult = $client->listAccessPoints(new Oss\Models\ListAccessPointsRequest());
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListAccessPoints', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// PutAccessPointPolicy
|
||||
try {
|
||||
$policy = '{"Version":"1","Statement":[{"Action":["oss:PutObject","oss:GetObject"],"Effect":"Deny","Principal":["' . self::$USER_ID . '"],"Resource":["acs:oss:' . self::$REGION . ':' . self::$USER_ID . ':accesspoint/' . $accessPointName . '","acs:oss:' . self::$REGION . ':' . self::$USER_ID . ':accesspoint/' . $accessPointName . '/object/*"]}]}';
|
||||
$putPolicyResult = $client->putAccessPointPolicy(new Oss\Models\PutAccessPointPolicyRequest(
|
||||
bucket: $bucketName,
|
||||
accessPointName: $accessPointName,
|
||||
body: Oss\Utils::streamFor($policy)
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutAccessPointPolicy', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetAccessPointPolicy
|
||||
try {
|
||||
$getPolicyResult = $client->getAccessPointPolicy(new Oss\Models\GetAccessPointPolicyRequest(
|
||||
bucket: $bucketName,
|
||||
accessPointName: $accessPointName,
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetAccessPointPolicy', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteAccessPointPolicy
|
||||
try {
|
||||
$delPolicyResult = $client->deleteAccessPointPolicy(new Oss\Models\DeleteAccessPointPolicyRequest(
|
||||
bucket: $bucketName,
|
||||
accessPointName: $accessPointName,
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteAccessPointPolicy', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetAccessPoint
|
||||
try {
|
||||
$getResult = $client->getAccessPoint(new Oss\Models\GetAccessPointRequest(
|
||||
$bucketName, $accessPointName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetAccessPoint', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteAccessPoint
|
||||
try {
|
||||
$delResult = $client->deleteAccessPoint(new Oss\Models\DeleteAccessPointRequest(
|
||||
bucket: $bucketName,
|
||||
accessPointName: $accessPointName,
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteAccessPoint', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
80
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketAccessMonitorTest.php
vendored
Normal file
80
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketAccessMonitorTest.php
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketAccessMonitorTest extends TestIntegration
|
||||
{
|
||||
public function testBucketAccessMonitor()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketAccessMonitor
|
||||
$putResult = $client->putBucketAccessMonitor(new Oss\Models\PutBucketAccessMonitorRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\AccessMonitorConfiguration(
|
||||
status: Oss\Models\AccessMonitorStatusType::ENABLED
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketAccessMonitor
|
||||
$getResult = $client->getBucketAccessMonitor(new Oss\Models\GetBucketAccessMonitorRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketAccessMonitorFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketAccessMonitor
|
||||
try {
|
||||
$putResult = $client->putBucketAccessMonitor(new Oss\Models\PutBucketAccessMonitorRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\AccessMonitorConfiguration(
|
||||
status: Oss\Models\AccessMonitorStatusType::ENABLED
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketAccessMonitor', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketAccessMonitor
|
||||
try {
|
||||
$getResult = $client->getBucketAccessMonitor(new Oss\Models\GetBucketAccessMonitorRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketAccessMonitor', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
81
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketArchiveDirectReadTest.php
vendored
Normal file
81
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketArchiveDirectReadTest.php
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;
|
||||
|
||||
class ClientBucketArchiveDirectReadTest extends TestIntegration
|
||||
{
|
||||
public function testBucketArchiveDirectRead()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketArchiveDirectRead
|
||||
$putResult = $client->putBucketArchiveDirectRead(new Oss\Models\PutBucketArchiveDirectReadRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\ArchiveDirectReadConfiguration(
|
||||
true
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketArchiveDirectRead
|
||||
$getResult = $client->getBucketArchiveDirectRead(new Oss\Models\GetBucketArchiveDirectReadRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketArchiveDirectReadFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketArchiveDirectRead
|
||||
try {
|
||||
$putResult = $client->putBucketArchiveDirectRead(new Oss\Models\PutBucketArchiveDirectReadRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\ArchiveDirectReadConfiguration(
|
||||
true
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketArchiveDirectRead', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketArchiveDirectRead
|
||||
try {
|
||||
$getResult = $client->getBucketArchiveDirectRead(new Oss\Models\GetBucketArchiveDirectReadRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketArchiveDirectRead', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
514
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketBasicTest.php
vendored
Normal file
514
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketBasicTest.php
vendored
Normal file
@@ -0,0 +1,514 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketBasicTest extends TestIntegration
|
||||
{
|
||||
public function testBucketBasic()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
|
||||
//default
|
||||
$bucketName = self::randomBucketName() . "-default";
|
||||
$result = $client->putBucket(new Oss\Models\PutBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// get stat
|
||||
$result = $client->getBucketStat(new Oss\Models\GetBucketStatRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertEquals(0, $result->storage);
|
||||
|
||||
// get location
|
||||
$result = $client->getBucketLocation(new Oss\Models\GetBucketLocationRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$region = self::$REGION;
|
||||
$this->assertEquals("oss-$region", $result->location);
|
||||
|
||||
// get info
|
||||
$result = $client->getBucketInfo(new Oss\Models\GetBucketInfoRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertEquals('private', $result->bucketInfo->acl);
|
||||
|
||||
//delete
|
||||
$result = $client->deleteBucket(new Oss\Models\DeleteBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $result->statusCode);
|
||||
$this->assertEquals('No Content', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// create bucket with acl & storage class & data redundancy
|
||||
$bucketName = self::randomBucketName() . '-acl-storage';
|
||||
$result = $client->putBucket(new Oss\Models\PutBucketRequest(
|
||||
$bucketName,
|
||||
'public-read',
|
||||
null,
|
||||
new Oss\Models\CreateBucketConfiguration(
|
||||
'IA',
|
||||
'ZRS'
|
||||
)
|
||||
));
|
||||
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// get info
|
||||
$result = $client->getBucketInfo(new Oss\Models\GetBucketInfoRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertEquals('public-read', $result->bucketInfo->acl);
|
||||
$this->assertEquals('IA', $result->bucketInfo->storageClass);
|
||||
$this->assertEquals('ZRS', $result->bucketInfo->dataRedundancyType);
|
||||
|
||||
$result = $client->listObjects(new Oss\Models\ListObjectsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
$result = $client->listObjectsV2(new Oss\Models\ListObjectsV2Request(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
//delete
|
||||
$result = $client->deleteBucket(new Oss\Models\DeleteBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $result->statusCode);
|
||||
$this->assertEquals('No Content', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
}
|
||||
|
||||
public function testBucketAcl()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
|
||||
//default
|
||||
$bucketName = self::randomBucketName();
|
||||
$result = $client->putBucket(new Oss\Models\PutBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// set acl
|
||||
$result = $client->putBucketAcl(new Oss\Models\PutBucketAclRequest(
|
||||
$bucketName,
|
||||
'private'
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// get acl
|
||||
$result = $client->getBucketAcl(new Oss\Models\GetBucketAclRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertEquals('private', $result->accessControlList->grant);
|
||||
|
||||
$client->deleteBucket(new Oss\Models\DeleteBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
}
|
||||
|
||||
public function testBucketVersioning()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
|
||||
//default
|
||||
$bucketName = self::randomBucketName();
|
||||
$result = $client->putBucket(new Oss\Models\PutBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
$result = $client->putBucketVersioning(new Oss\Models\PutBucketVersioningRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\VersioningConfiguration(
|
||||
Oss\Models\BucketVersioningStatusType::ENABLED
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
$result = $client->getBucketVersioning(new Oss\Models\GetBucketVersioningRequest(
|
||||
$bucketName,
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertEquals(Oss\Models\BucketVersioningStatusType::ENABLED, $result->versioningConfiguration->status);
|
||||
|
||||
$result = $client->listObjectVersions(new Oss\Models\ListObjectVersionsRequest(
|
||||
$bucketName,
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertNull($result->versions);
|
||||
|
||||
$this->waitFor(3);
|
||||
$client->deleteBucket(new Oss\Models\DeleteBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
}
|
||||
|
||||
public function testListBuckets()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
|
||||
//default
|
||||
$bucketName = self::randomBucketName();
|
||||
$result = $client->putBucket(new Oss\Models\PutBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
$result = $client->listBuckets(new Oss\Models\ListBucketsRequest(self::$BUCKETNAME_PREFIX));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertEquals(True, count($result->buckets) > 0);
|
||||
|
||||
$request = new Oss\Models\ListBucketsRequest(self::$BUCKETNAME_PREFIX);
|
||||
$request->tagging = 'k:v';
|
||||
$result = $client->listBuckets($request);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertNull($result->buckets);
|
||||
|
||||
$request = new Oss\Models\ListBucketsRequest(self::$BUCKETNAME_PREFIX);
|
||||
$request->tagKey = 'k';
|
||||
$request->tagValue = 'v';
|
||||
$result = $client->listBuckets($request);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertNull($result->buckets);
|
||||
|
||||
$this->waitFor(3);
|
||||
$client->deleteBucket(new Oss\Models\DeleteBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
}
|
||||
|
||||
public function testDescribeRegions()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$result = $client->describeRegions(new Oss\Models\DescribeRegionsRequest());
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertEquals(true, count($result->regionInfos) > 1);
|
||||
|
||||
$result = $client->describeRegions(new Oss\Models\DescribeRegionsRequest("oss-cn-hangzhou"));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertEquals(1, count($result->regionInfos));
|
||||
}
|
||||
|
||||
public function testPutBucketFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::randomBucketName();
|
||||
$client->putBucket(new Oss\Models\PutBucketRequest(
|
||||
$bucketName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucket', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testPutBucketAclFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->putBucketAcl(new Oss\Models\PutBucketAclRequest(
|
||||
$bucketName,
|
||||
'private'
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketAcl', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetBucketAclFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->getBucketAcl(new Oss\Models\GetBucketAclRequest(
|
||||
$bucketName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketAcl', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetBucketStatFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->getBucketStat(new Oss\Models\GetBucketStatRequest(
|
||||
$bucketName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketStat', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetBucketLocationFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->getBucketLocation(new Oss\Models\GetBucketLocationRequest(
|
||||
$bucketName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketLocation', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetBucketInfoFail(): void
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->getBucketInfo(new Oss\Models\GetBucketInfoRequest(
|
||||
$bucketName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketInfo', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testPutBucketVersioningFail(): void
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->putBucketVersioning(new Oss\Models\PutBucketVersioningRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\VersioningConfiguration('Enabled')
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketVersioning', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetBucketVersioningFail(): void
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->GetBucketVersioning(new Oss\Models\GetBucketVersioningRequest(
|
||||
$bucketName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketVersioning', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListObjectVersionsFail(): void
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->listObjectVersions(new Oss\Models\ListObjectVersionsRequest(
|
||||
$bucketName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjectVersions', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListObjectsFail(): void
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->listObjects(new Oss\Models\ListObjectsRequest(
|
||||
$bucketName,
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjects', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListObjectsV2Fail(): void
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->listObjectsV2(new Oss\Models\ListObjectsV2Request(
|
||||
$bucketName,
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjectsV2', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListBucketsFail(): void
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$bucketName = self::$bucketName;
|
||||
$client->listBuckets(new Oss\Models\ListBucketsRequest());
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListBuckets', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
166
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketCnameTest.php
vendored
Normal file
166
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketCnameTest.php
vendored
Normal file
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketCnameTest extends TestIntegration
|
||||
{
|
||||
public function testBucketCname()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// CreateCnameToken
|
||||
$createResult = $client->createCnameToken(new Oss\Models\CreateCnameTokenRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketCnameConfiguration(
|
||||
new Oss\Models\Cname(
|
||||
'example.com'
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $createResult->statusCode);
|
||||
$this->assertEquals('OK', $createResult->status);
|
||||
$this->assertEquals(True, count($createResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($createResult->requestId));
|
||||
|
||||
// GetCnameToken
|
||||
$getResult = $client->getCnameToken(new Oss\Models\GetCnameTokenRequest(
|
||||
$bucketName,
|
||||
'example.com'
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// ListCname
|
||||
$listResult = $client->listCname(new Oss\Models\ListCnameRequest(
|
||||
$bucketName,
|
||||
));
|
||||
$this->assertEquals(200, $listResult->statusCode);
|
||||
$this->assertEquals('OK', $listResult->status);
|
||||
$this->assertEquals(True, count($listResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($listResult->requestId));
|
||||
|
||||
// DeleteCname
|
||||
$delResult = $client->deleteCname(new Oss\Models\DeleteCnameRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketCnameConfiguration(
|
||||
new Oss\Models\Cname(
|
||||
'example.com'
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $delResult->statusCode);
|
||||
$this->assertEquals('OK', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
|
||||
}
|
||||
|
||||
public function testBucketCnameFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
try {
|
||||
$putResult = $client->putCname(new Oss\Models\PutCnameRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketCnameConfiguration(
|
||||
new Oss\Models\Cname(
|
||||
'example.com'
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutCname', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$createResult = $client->createCnameToken(new Oss\Models\CreateCnameTokenRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketCnameConfiguration(
|
||||
new Oss\Models\Cname(
|
||||
'example.com'
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CreateCnameToken', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$getTokenResult = $client->getCnameToken(new Oss\Models\GetCnameTokenRequest(
|
||||
$bucketName,
|
||||
'example.com'
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetCnameToken', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$listResult = $client->listCname(new Oss\Models\ListCnameRequest(
|
||||
$bucketName,
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListCname', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$delResult = $client->deleteCname(new Oss\Models\DeleteCnameRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketCnameConfiguration(
|
||||
new Oss\Models\Cname(
|
||||
'example.com'
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteCname', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
159
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketCorsTest.php
vendored
Normal file
159
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketCorsTest.php
vendored
Normal file
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketCorsTest extends TestIntegration
|
||||
{
|
||||
public function testBucketCors()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketCors
|
||||
$putResult = $client->putBucketCors(new Oss\Models\PutBucketCorsRequest(
|
||||
$bucketName,
|
||||
corsConfiguration: new Oss\Models\CORSConfiguration(
|
||||
array(
|
||||
new Oss\Models\CORSRule(
|
||||
allowedOrigins: ['*'],
|
||||
allowedMethods: ['PUT', 'GET']
|
||||
)
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// OptionObject
|
||||
$objectName = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-put-object';
|
||||
$putObjResult = $client->putObject(new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$objectName,
|
||||
body: Oss\Utils::streamFor('hi oss')
|
||||
));
|
||||
$this->assertEquals(200, $putObjResult->statusCode);
|
||||
$this->assertEquals('OK', $putObjResult->status);
|
||||
$this->assertEquals(True, count($putObjResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putObjResult->requestId));
|
||||
|
||||
$optionObjResult = $client->optionObject(new Oss\Models\OptionObjectRequest(
|
||||
$bucketName,
|
||||
$objectName,
|
||||
origin: 'http://www.example.com',
|
||||
accessControlRequestMethod: 'PUT',
|
||||
));
|
||||
$this->assertEquals(200, $optionObjResult->statusCode);
|
||||
$this->assertEquals('OK', $optionObjResult->status);
|
||||
$this->assertEquals(True, count($optionObjResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($optionObjResult->requestId));
|
||||
|
||||
// GetBucketCors
|
||||
$getResult = $client->getBucketCors(new Oss\Models\GetBucketCorsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteBucketCors
|
||||
$delResult = $client->deleteBucketCors(new Oss\Models\DeleteBucketCorsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketCorsFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketCors
|
||||
try {
|
||||
$putResult = $client->putBucketCors(new Oss\Models\PutBucketCorsRequest(
|
||||
$bucketName,
|
||||
corsConfiguration: new Oss\Models\CORSConfiguration(
|
||||
array(
|
||||
new Oss\Models\CORSRule(
|
||||
allowedOrigins: ['*'],
|
||||
allowedMethods: ['PUT', 'GET']
|
||||
)
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketCors', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$objectName = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-put-object';
|
||||
$optionObjResult = $client->optionObject(new Oss\Models\OptionObjectRequest(
|
||||
$bucketName,
|
||||
$objectName,
|
||||
origin: 'http://www.example.com',
|
||||
accessControlRequestMethod: 'PUT',
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error OptionObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketCors
|
||||
try {
|
||||
$getResult = $client->getBucketCors(new Oss\Models\GetBucketCorsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketCors', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBucketCors
|
||||
try {
|
||||
$delResult = $client->deleteBucketCors(new Oss\Models\DeleteBucketCorsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketCors', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
147
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketDataRedundancyTransitionTest.php
vendored
Normal file
147
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketDataRedundancyTransitionTest.php
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketDataRedundancyTransitionTest extends TestIntegration
|
||||
{
|
||||
public function testBucketDataRedundancyTransition()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// CreateBucketDataRedundancyTransition
|
||||
$createResult = $client->createBucketDataRedundancyTransition(new Oss\Models\CreateBucketDataRedundancyTransitionRequest(
|
||||
$bucketName,
|
||||
targetRedundancyType: 'ZRS'
|
||||
));
|
||||
$this->assertEquals(200, $createResult->statusCode);
|
||||
$this->assertEquals('OK', $createResult->status);
|
||||
$this->assertEquals(True, count($createResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($createResult->requestId));
|
||||
|
||||
// GetBucketDataRedundancyTransition
|
||||
$getResult = $client->getBucketDataRedundancyTransition(new Oss\Models\GetBucketDataRedundancyTransitionRequest(
|
||||
$bucketName,
|
||||
redundancyTransitionTaskid: $createResult->bucketDataRedundancyTransition->taskId
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// ListBucketDataRedundancyTransition
|
||||
$listResult = $client->listBucketDataRedundancyTransition(new Oss\Models\ListBucketDataRedundancyTransitionRequest(
|
||||
$bucketName,
|
||||
));
|
||||
$this->assertEquals(200, $listResult->statusCode);
|
||||
$this->assertEquals('OK', $listResult->status);
|
||||
$this->assertEquals(True, count($listResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($listResult->requestId));
|
||||
|
||||
// ListUserDataRedundancyTransition
|
||||
$listResult = $client->listUserDataRedundancyTransition(new Oss\Models\ListUserDataRedundancyTransitionRequest());
|
||||
$this->assertEquals(200, $listResult->statusCode);
|
||||
$this->assertEquals('OK', $listResult->status);
|
||||
$this->assertEquals(True, count($listResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($listResult->requestId));
|
||||
|
||||
// DeleteBucketDataRedundancyTransition
|
||||
$delResult = $client->deleteBucketDataRedundancyTransition(new Oss\Models\DeleteBucketDataRedundancyTransitionRequest(
|
||||
$bucketName, $createResult->bucketDataRedundancyTransition->taskId
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketDataRedundancyTransitionFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
try {
|
||||
$createResult = $client->createBucketDataRedundancyTransition(new Oss\Models\CreateBucketDataRedundancyTransitionRequest(
|
||||
$bucketName,
|
||||
targetRedundancyType: 'ZRS'
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CreateBucketDataRedundancyTransition', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$getResult = $client->getBucketDataRedundancyTransition(new Oss\Models\GetBucketDataRedundancyTransitionRequest(
|
||||
$bucketName, '123'
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketDataRedundancyTransition', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$delResult = $client->deleteBucketDataRedundancyTransition(new Oss\Models\DeleteBucketDataRedundancyTransitionRequest(
|
||||
$bucketName, '123'
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketDataRedundancyTransition', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$listResult = $client->listBucketDataRedundancyTransition(new Oss\Models\ListBucketDataRedundancyTransitionRequest(
|
||||
$bucketName,
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListBucketDataRedundancyTransition', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$client = $this->getInvalidAkClient();
|
||||
$listResult = $client->listUserDataRedundancyTransition(new Oss\Models\ListUserDataRedundancyTransitionRequest());
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListUserDataRedundancyTransition', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
109
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketEncryptionTest.php
vendored
Normal file
109
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketEncryptionTest.php
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketEncryptionTest extends TestIntegration
|
||||
{
|
||||
public function testBucketEncryption()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
// PutBucketEncryption
|
||||
$putResult = $client->putBucketEncryption(new Oss\Models\PutBucketEncryptionRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\ServerSideEncryptionRule(
|
||||
new Oss\Models\ApplyServerSideEncryptionByDefault(
|
||||
sseAlgorithm: 'KMS',
|
||||
kmsDataEncryption: 'SM4'
|
||||
))
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketEncryption
|
||||
$getResult = $client->getBucketEncryption(new Oss\Models\GetBucketEncryptionRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteBucketEncryption
|
||||
$delResult = $client->deleteBucketEncryption(new Oss\Models\DeleteBucketEncryptionRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketEncryptionFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketEncryption
|
||||
try {
|
||||
$putResult = $client->putBucketEncryption(new Oss\Models\PutBucketEncryptionRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\ServerSideEncryptionRule(
|
||||
new Oss\Models\ApplyServerSideEncryptionByDefault(
|
||||
sseAlgorithm: 'KMS',
|
||||
kmsDataEncryption: 'SM4'
|
||||
))
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketEncryption', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketEncryption
|
||||
try {
|
||||
$getResult = $client->getBucketEncryption(new Oss\Models\GetBucketEncryptionRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketEncryption', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBucketEncryption
|
||||
try {
|
||||
$delResult = $client->deleteBucketEncryption(new Oss\Models\DeleteBucketEncryptionRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketEncryption', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
116
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketHttpsConfigTest.php
vendored
Normal file
116
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketHttpsConfigTest.php
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketHttpsConfigTest extends TestIntegration
|
||||
{
|
||||
public function testBucketHttpsConfig()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketHttpsConfig
|
||||
$putResult = $client->putBucketHttpsConfig(new Oss\Models\PutBucketHttpsConfigRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\HttpsConfiguration(
|
||||
tls: new Oss\Models\TLS(
|
||||
tlsVersions: ['TLSv1.2', 'TLSv1.3'],
|
||||
enable: true
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketHttpsConfig
|
||||
$getResult = $client->getBucketHttpsConfig(new Oss\Models\GetBucketHttpsConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// PutBucketHttpsConfig
|
||||
$putResult = $client->putBucketHttpsConfig(new Oss\Models\PutBucketHttpsConfigRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\HttpsConfiguration(
|
||||
tls: new Oss\Models\TLS(
|
||||
tlsVersions: ['TLSv1.2', 'TLSv1.3'],
|
||||
enable: true
|
||||
),
|
||||
cipherSuite: new Oss\Models\CipherSuite(
|
||||
enable: true,
|
||||
strongCipherSuite: false,
|
||||
customCipherSuites: ['ECDHE-ECDSA-AES128-SHA256', 'ECDHE-RSA-AES128-GCM-SHA256', 'ECDHE-ECDSA-AES256-CCM8'],
|
||||
tls13CustomCipherSuites: ['TLS_AES_256_GCM_SHA384', 'TLS_AES_128_GCM_SHA256', 'TLS_CHACHA20_POLY1305_SHA256'],
|
||||
)
|
||||
),
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketHttpsConfig
|
||||
$getResult = $client->getBucketHttpsConfig(new Oss\Models\GetBucketHttpsConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketHttpsConfigFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketHttpsConfig
|
||||
try {
|
||||
$putResult = $client->putBucketHttpsConfig(new Oss\Models\PutBucketHttpsConfigRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\HttpsConfiguration(
|
||||
tls: new Oss\Models\TLS(
|
||||
tlsVersions: ['TLSv1.2', 'TLSv1.3'],
|
||||
enable: true
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketHttpsConfig', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketHttpsConfig
|
||||
try {
|
||||
$getResult = $client->getBucketHttpsConfig(new Oss\Models\GetBucketHttpsConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketHttpsConfig', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
190
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketInventoryTest.php
vendored
Normal file
190
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketInventoryTest.php
vendored
Normal file
@@ -0,0 +1,190 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketInventoryTest extends TestIntegration
|
||||
{
|
||||
public function testBucketInventory()
|
||||
{
|
||||
if (self::$USER_ID === false) {
|
||||
throw new \Exception('user id can not be empty!');
|
||||
}
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$id = 'report1' . rand(0, 100) . '-' . time();
|
||||
// PutBucketInventory
|
||||
$putResult = $client->putBucketInventory(new Oss\Models\PutBucketInventoryRequest(
|
||||
$bucketName,
|
||||
inventoryId: $id,
|
||||
inventoryConfiguration: new Oss\Models\InventoryConfiguration(
|
||||
isEnabled: true,
|
||||
destination: new Oss\Models\InventoryDestination(
|
||||
ossBucketDestination: new Oss\Models\InventoryOSSBucketDestination(
|
||||
bucket: 'acs:oss:::' . $bucketName,
|
||||
prefix: 'prefix1',
|
||||
format: Oss\Models\InventoryFormatType::CSV,
|
||||
accountId: self::$USER_ID,
|
||||
roleArn: 'acs:ram::' . self::$USER_ID . ':role/AliyunOSSRole'
|
||||
)
|
||||
),
|
||||
schedule: new Oss\Models\InventorySchedule(
|
||||
frequency: Oss\Models\InventoryFrequencyType::DAILY
|
||||
),
|
||||
filter: new Oss\Models\InventoryFilter(
|
||||
prefix: 'filterPrefix',
|
||||
lastModifyBeginTimeStamp: 1637883649,
|
||||
lastModifyEndTimeStamp: 1638347592,
|
||||
lowerSizeBound: 1024,
|
||||
upperSizeBound: 1048576,
|
||||
storageClass: 'Standard,IA'
|
||||
),
|
||||
includedObjectVersions: 'All',
|
||||
optionalFields: new Oss\Models\OptionalFields(
|
||||
fields: array(
|
||||
Oss\Models\InventoryOptionalFieldType::STORAGE_CLASS
|
||||
)
|
||||
),
|
||||
id: $id
|
||||
)));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketInventory
|
||||
$getResult = $client->getBucketInventory(new Oss\Models\GetBucketInventoryRequest(
|
||||
$bucketName, $id
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// ListBucketInventory
|
||||
$listResult = $client->listBucketInventory(new Oss\Models\ListBucketInventoryRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $listResult->statusCode);
|
||||
$this->assertEquals('OK', $listResult->status);
|
||||
$this->assertEquals(True, count($listResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($listResult->requestId));
|
||||
|
||||
// DeleteBucketInventory
|
||||
$delResult = $client->deleteBucketInventory(new Oss\Models\DeleteBucketInventoryRequest(
|
||||
$bucketName, $id
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketInventoryFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
$id = 'report1' . rand(0, 100) . '-' . time();
|
||||
// PutBucketInventory
|
||||
try {
|
||||
$putResult = $client->putBucketInventory(new Oss\Models\PutBucketInventoryRequest(
|
||||
$bucketName,
|
||||
inventoryId: $id,
|
||||
inventoryConfiguration: new Oss\Models\InventoryConfiguration(
|
||||
isEnabled: true,
|
||||
destination: new Oss\Models\InventoryDestination(
|
||||
ossBucketDestination: new Oss\Models\InventoryOSSBucketDestination(
|
||||
bucket: 'acs:oss:::' . $bucketName,
|
||||
prefix: 'prefix1',
|
||||
format: Oss\Models\InventoryFormatType::CSV,
|
||||
accountId: self::$USER_ID,
|
||||
roleArn: 'acs:ram::' . self::$USER_ID . ':role/AliyunOSSRole'
|
||||
)
|
||||
),
|
||||
schedule: new Oss\Models\InventorySchedule(
|
||||
frequency: Oss\Models\InventoryFrequencyType::DAILY
|
||||
),
|
||||
filter: new Oss\Models\InventoryFilter(
|
||||
prefix: 'filterPrefix',
|
||||
lastModifyBeginTimeStamp: 1637883649,
|
||||
lastModifyEndTimeStamp: 1638347592,
|
||||
lowerSizeBound: 1024,
|
||||
upperSizeBound: 1048576,
|
||||
storageClass: 'Standard,IA'
|
||||
),
|
||||
includedObjectVersions: 'All',
|
||||
optionalFields: new Oss\Models\OptionalFields(
|
||||
fields: array(
|
||||
Oss\Models\InventoryOptionalFieldType::STORAGE_CLASS
|
||||
)
|
||||
),
|
||||
id: $id
|
||||
)));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketInventory', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketInventory
|
||||
try {
|
||||
$getResult = $client->getBucketInventory(new Oss\Models\GetBucketInventoryRequest(
|
||||
$bucketName, $id
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketInventory', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// ListBucketInventory
|
||||
try {
|
||||
$getResult = $client->listBucketInventory(new Oss\Models\ListBucketInventoryRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListBucketInventory', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBucketInventory
|
||||
try {
|
||||
$delResult = $client->deleteBucketInventory(new Oss\Models\DeleteBucketInventoryRequest(
|
||||
$bucketName, $id
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketInventory', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
127
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketLifecycleTest.php
vendored
Normal file
127
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketLifecycleTest.php
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;
|
||||
|
||||
class ClientBucketLifecycleTest extends TestIntegration
|
||||
{
|
||||
public function testBucketLifecycle()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketLifecycle
|
||||
$putResult = $client->putBucketLifecycle(new Oss\Models\PutBucketLifecycleRequest(
|
||||
$bucketName,
|
||||
lifecycleConfiguration: new LifecycleConfiguration(
|
||||
array(new Oss\Models\LifecycleRule(
|
||||
prefix: 'log/',
|
||||
transitions: array(
|
||||
new Oss\Models\LifecycleRuleTransition(
|
||||
days: 30,
|
||||
storageClass: 'IA'
|
||||
)
|
||||
),
|
||||
id: 'rule',
|
||||
status: 'Enabled'
|
||||
))
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketLifecycle
|
||||
$getResult = $client->getBucketLifecycle(new Oss\Models\GetBucketLifecycleRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteBucketLifecycle
|
||||
$delResult = $client->deleteBucketLifecycle(new Oss\Models\DeleteBucketLifecycleRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketLifecycleFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketLifecycle
|
||||
try {
|
||||
$putResult = $client->putBucketLifecycle(new Oss\Models\PutBucketLifecycleRequest(
|
||||
$bucketName,
|
||||
lifecycleConfiguration: new LifecycleConfiguration(
|
||||
array(new Oss\Models\LifecycleRule(
|
||||
prefix: 'log/',
|
||||
transitions: array(
|
||||
new Oss\Models\LifecycleRuleTransition(
|
||||
days: 30,
|
||||
storageClass: 'IA'
|
||||
)
|
||||
),
|
||||
id: 'rule',
|
||||
status: 'Enabled'
|
||||
))
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketLifecycle', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketLifecycle
|
||||
try {
|
||||
$getResult = $client->getBucketLifecycle(new Oss\Models\GetBucketLifecycleRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketLifecycle', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBucketLifecycle
|
||||
try {
|
||||
$delResult = $client->deleteBucketLifecycle(new Oss\Models\DeleteBucketLifecycleRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketLifecycle', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
188
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketLoggingTest.php
vendored
Normal file
188
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketLoggingTest.php
vendored
Normal file
@@ -0,0 +1,188 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketLoggingTest extends TestIntegration
|
||||
{
|
||||
public function testBucketLogging()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketLogging
|
||||
$putResult = $client->putBucketLogging(new Oss\Models\PutBucketLoggingRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketLoggingStatus(
|
||||
new Oss\Models\LoggingEnabled(
|
||||
targetBucket: $bucketName, targetPrefix: 'TargetPrefix', loggingRole: 'AliyunOSSLoggingDefaultRole'
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketLogging
|
||||
$getResult = $client->getBucketLogging(new Oss\Models\GetBucketLoggingRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteBucketLogging
|
||||
$delResult = $client->deleteBucketLogging(new Oss\Models\DeleteBucketLoggingRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
|
||||
// PutUserDefinedLogFieldsConfig
|
||||
$putResult = $client->putUserDefinedLogFieldsConfig(new Oss\Models\PutUserDefinedLogFieldsConfigRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\UserDefinedLogFieldsConfiguration(
|
||||
paramSet: new Oss\Models\LoggingParamSet(['param1', 'param2']), headerSet: new Oss\Models\LoggingHeaderSet(['header1', 'header2'])
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetUserDefinedLogFieldsConfig
|
||||
$getResult = $client->getUserDefinedLogFieldsConfig(new Oss\Models\GetUserDefinedLogFieldsConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteUserDefinedLogFieldsConfig
|
||||
$delResult = $client->deleteUserDefinedLogFieldsConfig(new Oss\Models\DeleteUserDefinedLogFieldsConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketLoggingFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
try {
|
||||
$putResult = $client->putBucketLogging(new Oss\Models\PutBucketLoggingRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketLoggingStatus(
|
||||
new Oss\Models\LoggingEnabled(
|
||||
targetBucket: $bucketName, targetPrefix: 'TargetPrefix'
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketLogging', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$getResult = $client->getBucketLogging(new Oss\Models\GetBucketLoggingRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketLogging', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$delResult = $client->deleteBucketLogging(new Oss\Models\DeleteBucketLoggingRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketLogging', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$putResult = $client->putUserDefinedLogFieldsConfig(new Oss\Models\PutUserDefinedLogFieldsConfigRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\UserDefinedLogFieldsConfiguration(
|
||||
paramSet: new Oss\Models\LoggingParamSet(['param1', 'param2']), headerSet: new Oss\Models\LoggingHeaderSet(['header1', 'header2'])
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutUserDefinedLogFieldsConfig', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$getResult = $client->getUserDefinedLogFieldsConfig(new Oss\Models\GetUserDefinedLogFieldsConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetUserDefinedLogFieldsConfig', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$delResult = $client->deleteUserDefinedLogFieldsConfig(new Oss\Models\DeleteUserDefinedLogFieldsConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteUserDefinedLogFieldsConfig', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
184
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketMetaQueryTest.php
vendored
Normal file
184
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketMetaQueryTest.php
vendored
Normal file
@@ -0,0 +1,184 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketMetaQueryTest extends TestIntegration
|
||||
{
|
||||
public function testBucketMetaQuery()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// OpenMetaQuery
|
||||
$putResult = $client->openMetaQuery(new Oss\Models\OpenMetaQueryRequest(
|
||||
$bucketName,
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetMetaQueryStatus
|
||||
$getResult = $client->getMetaQueryStatus(new Oss\Models\GetMetaQueryStatusRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DoMetaQuery
|
||||
$request = new Oss\Models\DoMetaQueryRequest($bucketName, new Oss\Models\MetaQuery(
|
||||
maxResults: 5,
|
||||
query: "{'Field': 'Size','Value': '1048576','Operation': 'gt'}",
|
||||
sort: 'Size',
|
||||
order: Oss\Models\MetaQueryOrderType::ASC,
|
||||
aggregations: new Oss\Models\MetaQueryAggregations(
|
||||
[
|
||||
new Oss\Models\MetaQueryAggregation(
|
||||
field: 'Size',
|
||||
operation: 'sum'
|
||||
),
|
||||
new Oss\Models\MetaQueryAggregation(
|
||||
field: 'Size',
|
||||
operation: 'max'
|
||||
),
|
||||
]
|
||||
),
|
||||
));
|
||||
$doResult = $client->doMetaQuery($request);
|
||||
$this->assertEquals(200, $doResult->statusCode);
|
||||
$this->assertEquals('OK', $doResult->status);
|
||||
$this->assertEquals(True, count($doResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($doResult->requestId));
|
||||
|
||||
// CloseMetaQuery
|
||||
$closeResult = $client->closeMetaQuery(new Oss\Models\CloseMetaQueryRequest($bucketName));
|
||||
$this->assertEquals(200, $closeResult->statusCode);
|
||||
$this->assertEquals('OK', $closeResult->status);
|
||||
$this->assertEquals(True, count($closeResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($closeResult->requestId));
|
||||
|
||||
$bucketNameAiSearch = self::$BUCKETNAME_PREFIX . strval(rand(0, 100)) . '-' . strval(time()) . '-semantic';
|
||||
$client->putBucket(new Oss\Models\PutBucketRequest($bucketNameAiSearch));
|
||||
// OpenMetaQuery with semantic
|
||||
$putResult = $client->openMetaQuery(new Oss\Models\OpenMetaQueryRequest(
|
||||
$bucketNameAiSearch, 'semantic'
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// DoMetaQuery with semantic
|
||||
$request = new Oss\Models\DoMetaQueryRequest($bucketNameAiSearch, new Oss\Models\MetaQuery(
|
||||
maxResults: 99,
|
||||
query: "Overlook the snow-covered forest",
|
||||
mediaTypes: new Oss\Models\MetaQueryMediaTypes('image'),
|
||||
simpleQuery: '{"Operation":"gt", "Field": "Size", "Value": "30"}',
|
||||
), 'semantic');
|
||||
$doResult = $client->doMetaQuery($request);
|
||||
$this->assertEquals(200, $doResult->statusCode);
|
||||
$this->assertEquals('OK', $doResult->status);
|
||||
$this->assertEquals(True, count($doResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($doResult->requestId));
|
||||
|
||||
$client->deleteBucket(new Oss\Models\DeleteBucketRequest($bucketNameAiSearch));
|
||||
}
|
||||
|
||||
public function testBucketMetaQueryFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// OpenMetaQuery
|
||||
try {
|
||||
$putResult = $client->openMetaQuery(new Oss\Models\OpenMetaQueryRequest(
|
||||
$bucketName,
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error OpenMetaQuery', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetMetaQueryStatus
|
||||
try {
|
||||
$getResult = $client->getMetaQueryStatus(new Oss\Models\GetMetaQueryStatusRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetMetaQueryStatus', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DoMetaQuery
|
||||
try {
|
||||
$request = new Oss\Models\DoMetaQueryRequest($bucketName, new Oss\Models\MetaQuery(
|
||||
maxResults: 5,
|
||||
query: "{'Field': 'Size','Value': '1048576','Operation': 'gt'}",
|
||||
sort: 'Size',
|
||||
order: Oss\Models\MetaQueryOrderType::ASC,
|
||||
aggregations: new Oss\Models\MetaQueryAggregations(
|
||||
[
|
||||
new Oss\Models\MetaQueryAggregation(
|
||||
field: 'Size',
|
||||
operation: 'sum'
|
||||
),
|
||||
new Oss\Models\MetaQueryAggregation(
|
||||
field: 'Size',
|
||||
operation: 'max'
|
||||
),
|
||||
]
|
||||
),
|
||||
));
|
||||
$doResult = $client->doMetaQuery($request);
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DoMetaQuery', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// CloseMetaQuery
|
||||
try {
|
||||
$closeResult = $client->closeMetaQuery(new Oss\Models\CloseMetaQueryRequest($bucketName));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CloseMetaQuery', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
112
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketOverwriteTest.php
vendored
Normal file
112
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketOverwriteTest.php
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketOverwriteTest extends TestIntegration
|
||||
{
|
||||
public function testBucketOverwriteConfig()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketOverwriteConfig
|
||||
$putResult = $client->putBucketOverwriteConfig(new Oss\Models\PutBucketOverwriteConfigRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\OverwriteConfiguration(
|
||||
array(
|
||||
new Oss\Models\OverwriteRule(
|
||||
'forbid', null, null, null, 'rule-001'
|
||||
)
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketOverwriteConfig
|
||||
$getResult = $client->getBucketOverwriteConfig(new Oss\Models\GetBucketOverwriteConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteBucketOverwriteConfig
|
||||
$delResult = $client->deleteBucketOverwriteConfig(new Oss\Models\DeleteBucketOverwriteConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketOverwriteConfigFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
try {
|
||||
$putResult = $client->putBucketOverwriteConfig(new Oss\Models\PutBucketOverwriteConfigRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\OverwriteConfiguration(
|
||||
array(
|
||||
new Oss\Models\OverwriteRule(
|
||||
'forbid', null, null, null, 'rule-001'
|
||||
)
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketOverwriteConfig', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('MalformedXML', $se->getErrorCode());
|
||||
$this->assertEquals(400, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$getResult = $client->getBucketOverwriteConfig(new Oss\Models\GetBucketOverwriteConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketOverwriteConfig', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$delResult = $client->deleteBucketOverwriteConfig(new Oss\Models\DeleteBucketOverwriteConfigRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketOverwriteConfig', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
136
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketPolicyTest.php
vendored
Normal file
136
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketPolicyTest.php
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;
|
||||
|
||||
class ClientBucketPolicyTest extends TestIntegration
|
||||
{
|
||||
public function testBucketPolicy()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$client->putBucketPublicAccessBlock(new Oss\Models\PutBucketPublicAccessBlockRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\PublicAccessBlockConfiguration(
|
||||
false
|
||||
)
|
||||
));
|
||||
|
||||
// PutBucketPolicy
|
||||
$putResult = $client->putBucketPolicy(new Oss\Models\PutBucketPolicyRequest(
|
||||
$bucketName,
|
||||
'{"Version":"1","Statement":[{"Action":["oss:PutObject","oss:GetObject"],"Effect":"Allow","Resource":["acs:oss:*:*:*"]}]}'
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketPolicy
|
||||
$getResult = $client->getBucketPolicy(new Oss\Models\GetBucketPolicyRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// GetBucketPolicyStatus
|
||||
$getResult2 = $client->getBucketPolicyStatus(new Oss\Models\GetBucketPolicyStatusRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult2->statusCode);
|
||||
$this->assertEquals('OK', $getResult2->status);
|
||||
$this->assertEquals(True, count($getResult2->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult2->requestId));
|
||||
|
||||
// DeleteBucketPolicy
|
||||
$delResult = $client->deleteBucketPolicy(new Oss\Models\DeleteBucketPolicyRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketTransferAccelerationFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketPolicy
|
||||
try {
|
||||
$putResult = $client->putBucketPolicy(new Oss\Models\PutBucketPolicyRequest(
|
||||
$bucketName,
|
||||
'{"Version":"1","Statement":[{"Action":["oss:PutObject","oss:GetObject"],"Effect":"Allow","Resource":["acs:oss:*:*:*"]}]}'
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketPolicy', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketPolicy
|
||||
try {
|
||||
$getResult = $client->getBucketPolicy(new Oss\Models\GetBucketPolicyRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketPolicy', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketPolicyStatus
|
||||
try {
|
||||
$getResult = $client->getBucketPolicyStatus(new Oss\Models\GetBucketPolicyStatusRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketPolicyStatus', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBucketPolicy
|
||||
try {
|
||||
$delResult = $client->deleteBucketPolicy(new Oss\Models\DeleteBucketPolicyRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketPolicy', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
90
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketPublicAccessBlockTest.php
vendored
Normal file
90
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketPublicAccessBlockTest.php
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketPublicAccessBlockTest extends TestIntegration
|
||||
{
|
||||
public function testBucketPublicAccessBlock()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucket = self::$bucketName;
|
||||
// PutBucketPublicAccessBlock
|
||||
$putResult = $client->putBucketPublicAccessBlock(new Oss\Models\PutBucketPublicAccessBlockRequest(
|
||||
$bucket, new Oss\Models\PublicAccessBlockConfiguration(true)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketPublicAccessBlock
|
||||
$getResult = $client->getBucketPublicAccessBlock(new Oss\Models\GetBucketPublicAccessBlockRequest($bucket));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteBucketPublicAccessBlock
|
||||
$delResult = $client->deleteBucketPublicAccessBlock(new Oss\Models\DeleteBucketPublicAccessBlockRequest($bucket));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketPublicAccessBlockFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
$bucketName = self::$bucketName;
|
||||
// PutBucketPublicAccessBlock
|
||||
try {
|
||||
$putResult = $client->putBucketPublicAccessBlock(new Oss\Models\PutBucketPublicAccessBlockRequest(
|
||||
$bucketName, new Oss\Models\PublicAccessBlockConfiguration(true)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketPublicAccessBlock', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketPublicAccessBlock
|
||||
try {
|
||||
$getResult = $client->getBucketPublicAccessBlock(new Oss\Models\GetBucketPublicAccessBlockRequest($bucketName));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketPublicAccessBlock', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBucketPublicAccessBlock
|
||||
try {
|
||||
$delResult = $client->deleteBucketPublicAccessBlock(new Oss\Models\DeleteBucketPublicAccessBlockRequest($bucketName));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketPublicAccessBlock', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
83
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketRefererTest.php
vendored
Normal file
83
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketRefererTest.php
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;
|
||||
|
||||
class ClientBucketRefererTest extends TestIntegration
|
||||
{
|
||||
public function testBucketReferer()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketReferer
|
||||
$putResult = $client->putBucketReferer(new Oss\Models\PutBucketRefererRequest(
|
||||
$bucketName,
|
||||
refererConfiguration: new Oss\Models\RefererConfiguration(
|
||||
allowEmptyReferer: false,
|
||||
refererList: new Oss\Models\RefererList([""]),
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketReferer
|
||||
$getResult = $client->getBucketReferer(new Oss\Models\GetBucketRefererRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketRefererFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketReferer
|
||||
try {
|
||||
$putResult = $client->putBucketReferer(new Oss\Models\PutBucketRefererRequest(
|
||||
$bucketName,
|
||||
refererConfiguration: new Oss\Models\RefererConfiguration(
|
||||
allowEmptyReferer: false,
|
||||
refererList: new Oss\Models\RefererList([""]),
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketReferer', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketReferer
|
||||
try {
|
||||
$getResult = $client->getBucketReferer(new Oss\Models\GetBucketRefererRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketReferer', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
246
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketReplicationTest.php
vendored
Normal file
246
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketReplicationTest.php
vendored
Normal file
@@ -0,0 +1,246 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketReplicationTest extends TestIntegration
|
||||
{
|
||||
public function testBucketReplication()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$targetBucketName = self::randomBucketName() . '-target';
|
||||
$cfg = Oss\Config::loadDefault();
|
||||
$cfg->setCredentialsProvider(new Oss\Credentials\StaticCredentialsProvider(
|
||||
self::$ACCESS_ID,
|
||||
self::$ACCESS_KEY
|
||||
));
|
||||
$cfg->setRegion('cn-beijing');
|
||||
$client1 = new Oss\Client($cfg);
|
||||
$client1->putBucket(new Oss\Models\PutBucketRequest(
|
||||
$targetBucketName
|
||||
));
|
||||
|
||||
// PutBucketReplication
|
||||
$putResult = $client->putBucketReplication(new Oss\Models\PutBucketReplicationRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\ReplicationConfiguration(
|
||||
array(
|
||||
new Oss\Models\ReplicationRule(
|
||||
sourceSelectionCriteria: new Oss\Models\ReplicationSourceSelectionCriteria(
|
||||
sseKmsEncryptedObjects: new Oss\Models\SseKmsEncryptedObjects(
|
||||
status: 'Enabled'
|
||||
)
|
||||
),
|
||||
destination: new Oss\Models\ReplicationDestination(
|
||||
bucket: $targetBucketName,
|
||||
location: 'oss-cn-beijing',
|
||||
transferType: Oss\Models\TransferType::INTERNAL
|
||||
),
|
||||
historicalObjectReplication: Oss\Models\HistoricalObjectReplicationType::ENABLED,
|
||||
rtc: new Oss\Models\ReplicationTimeControl(status: 'enabled')
|
||||
)
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketReplication
|
||||
$getResult = $client->getBucketReplication(new Oss\Models\GetBucketReplicationRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// GetBucketReplicationLocation
|
||||
$getLocationResult = $client->getBucketReplicationLocation(new Oss\Models\GetBucketReplicationLocationRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getLocationResult->statusCode);
|
||||
$this->assertEquals('OK', $getLocationResult->status);
|
||||
$this->assertEquals(True, count($getLocationResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getLocationResult->requestId));
|
||||
|
||||
// GetBucketReplicationProgress
|
||||
$getProgressResult = $client->getBucketReplicationProgress(new Oss\Models\GetBucketReplicationProgressRequest(
|
||||
$bucketName,
|
||||
$getResult->replicationConfiguration->rules[0]->id
|
||||
));
|
||||
$this->assertEquals(200, $getProgressResult->statusCode);
|
||||
$this->assertEquals('OK', $getProgressResult->status);
|
||||
$this->assertEquals(True, count($getProgressResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getProgressResult->requestId));
|
||||
|
||||
// PutBucketRtc
|
||||
$putRtcResult = $client->putBucketRtc(new Oss\Models\PutBucketRtcRequest(
|
||||
$bucketName,
|
||||
rtcConfiguration: new Oss\Models\RtcConfiguration(
|
||||
rtc: new Oss\Models\ReplicationTimeControl(
|
||||
status: 'disabled'
|
||||
),
|
||||
id: $getResult->replicationConfiguration->rules[0]->id
|
||||
),
|
||||
));
|
||||
$this->assertEquals(200, $putRtcResult->statusCode);
|
||||
$this->assertEquals('OK', $putRtcResult->status);
|
||||
$this->assertEquals(True, count($putRtcResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putRtcResult->requestId));
|
||||
|
||||
// DeleteBucketReplication
|
||||
$delResult = $client->deleteBucketReplication(new Oss\Models\DeleteBucketReplicationRequest(
|
||||
$bucketName,
|
||||
replicationRules: new Oss\Models\ReplicationRules(
|
||||
ids: [$getResult->replicationConfiguration->rules[0]->id]
|
||||
)
|
||||
),
|
||||
);
|
||||
$this->assertEquals(200, $delResult->statusCode);
|
||||
$this->assertEquals('OK', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
$client1->deleteBucket(new Oss\Models\DeleteBucketRequest(
|
||||
$targetBucketName
|
||||
));
|
||||
}
|
||||
|
||||
public function testBucketReplicationFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketReplication
|
||||
try {
|
||||
$putResult = $client->putBucketReplication(new Oss\Models\PutBucketReplicationRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\ReplicationConfiguration(
|
||||
array(
|
||||
new Oss\Models\ReplicationRule(
|
||||
sourceSelectionCriteria: new Oss\Models\ReplicationSourceSelectionCriteria(
|
||||
sseKmsEncryptedObjects: new Oss\Models\SseKmsEncryptedObjects(
|
||||
status: 'Enabled'
|
||||
)
|
||||
),
|
||||
destination: new Oss\Models\ReplicationDestination(
|
||||
bucket: 'bucket-not-exist',
|
||||
location: 'oss-cn-beijing',
|
||||
transferType: Oss\Models\TransferType::INTERNAL
|
||||
),
|
||||
historicalObjectReplication: Oss\Models\HistoricalObjectReplicationType::ENABLED,
|
||||
rtc: new Oss\Models\ReplicationTimeControl(status: 'enabled')
|
||||
)
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketReplication', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketReplication
|
||||
try {
|
||||
$getResult = $client->getBucketReplication(new Oss\Models\GetBucketReplicationRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketReplication', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$getLocationResult = $client->getBucketReplicationLocation(new Oss\Models\GetBucketReplicationLocationRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketReplicationLocation', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$getProgressResult = $client->getBucketReplicationProgress(new Oss\Models\GetBucketReplicationProgressRequest(
|
||||
$bucketName,
|
||||
'rule-id'
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketReplicationProgress', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$putRtcResult = $client->putBucketRtc(new Oss\Models\PutBucketRtcRequest(
|
||||
$bucketName,
|
||||
rtcConfiguration: new Oss\Models\RtcConfiguration(
|
||||
rtc: new Oss\Models\ReplicationTimeControl(
|
||||
status: 'disabled'
|
||||
),
|
||||
id: 'rule-id'
|
||||
),
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketRtc', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$delResult = $client->deleteBucketReplication(new Oss\Models\DeleteBucketReplicationRequest(
|
||||
$bucketName,
|
||||
replicationRules: new Oss\Models\ReplicationRules(
|
||||
ids: ['rule-id']
|
||||
)
|
||||
),
|
||||
);
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketReplication', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
80
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketRequestPaymentTest.php
vendored
Normal file
80
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketRequestPaymentTest.php
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketRequestPaymentTest extends TestIntegration
|
||||
{
|
||||
public function testBucketRequestPayment()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketRequestPayment
|
||||
$putResult = $client->putBucketRequestPayment(new Oss\Models\PutBucketRequestPaymentRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\RequestPaymentConfiguration(
|
||||
'Requester'
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketRequestPayment
|
||||
$getResult = $client->getBucketRequestPayment(new Oss\Models\GetBucketRequestPaymentRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketRequestPaymentFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketRequestPayment
|
||||
try {
|
||||
$putResult = $client->putBucketRequestPayment(new Oss\Models\PutBucketRequestPaymentRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\RequestPaymentConfiguration(
|
||||
'Requester'
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketRequestPayment', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketRequestPayment
|
||||
try {
|
||||
$getResult = $client->getBucketRequestPayment(new Oss\Models\GetBucketRequestPaymentRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketRequestPayment', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
78
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketResourceGroupTest.php
vendored
Normal file
78
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketResourceGroupTest.php
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketResourceGroupTest extends TestIntegration
|
||||
{
|
||||
public function testBucketResourceGroup()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// GetBucketResourceGroup
|
||||
$getResult = $client->getBucketResourceGroup(new Oss\Models\GetBucketResourceGroupRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// PutBucketResourceGroup
|
||||
$putResult = $client->putBucketResourceGroup(new Oss\Models\PutBucketResourceGroupRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketResourceGroupConfiguration(
|
||||
$getResult->bucketResourceGroupConfiguration->resourceGroupId
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketResourceGroupFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketResourceGroup
|
||||
try {
|
||||
$putResult = $client->putBucketResourceGroup(new Oss\Models\PutBucketResourceGroupRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\BucketResourceGroupConfiguration('rg-123')
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketResourceGroup', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketResourceGroup
|
||||
try {
|
||||
$getResult = $client->getBucketResourceGroup(new Oss\Models\GetBucketResourceGroupRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketResourceGroup', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
128
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketStyleTest.php
vendored
Normal file
128
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketStyleTest.php
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketStyleTest extends TestIntegration
|
||||
{
|
||||
public function testBucketStyle()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutStyle
|
||||
$putResult = $client->putStyle(new Oss\Models\PutStyleRequest(
|
||||
$bucketName,
|
||||
styleName: 'test',
|
||||
style: new Oss\Models\StyleContent('image/resize,p_50')
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetStyle
|
||||
$getResult = $client->getStyle(new Oss\Models\GetStyleRequest(
|
||||
$bucketName, 'test'
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// ListStyle
|
||||
$listResult = $client->listStyle(new Oss\Models\ListStyleRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $listResult->statusCode);
|
||||
$this->assertEquals('OK', $listResult->status);
|
||||
$this->assertEquals(True, count($listResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($listResult->requestId));
|
||||
|
||||
// DeleteStyle
|
||||
$delResult = $client->deleteStyle(new Oss\Models\DeleteStyleRequest(
|
||||
$bucketName, 'test'
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketStyleFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutStyle
|
||||
try {
|
||||
$putResult = $client->putStyle(new Oss\Models\PutStyleRequest(
|
||||
$bucketName,
|
||||
styleName: 'test',
|
||||
style: new Oss\Models\StyleContent('image/resize,p_50')
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutStyle', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetStyle
|
||||
try {
|
||||
$getResult = $client->getStyle(new Oss\Models\GetStyleRequest(
|
||||
$bucketName, 'test'
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetStyle', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// ListStyle
|
||||
try {
|
||||
$listResult = $client->listStyle(new Oss\Models\ListStyleRequest(
|
||||
$bucketName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListStyle', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteStyle
|
||||
try {
|
||||
$delResult = $client->deleteStyle(new Oss\Models\DeleteStyleRequest(
|
||||
$bucketName, 'test'
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteStyle', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
109
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketTagsTest.php
vendored
Normal file
109
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketTagsTest.php
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;
|
||||
|
||||
class ClientBucketTagsTest extends TestIntegration
|
||||
{
|
||||
public function testBucketTags()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketTags
|
||||
$putResult = $client->putBucketTags(new Oss\Models\PutBucketTagsRequest(
|
||||
$bucketName,
|
||||
tagging: new Oss\Models\Tagging(
|
||||
tagSet: new Oss\Models\TagSet(
|
||||
[new Oss\Models\Tag(key: 'key1', value: 'value1'), new Oss\Models\Tag(key: 'key2', value: 'value2')])
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketTags
|
||||
$getResult = $client->getBucketTags(new Oss\Models\GetBucketTagsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteBucketTags
|
||||
$delResult = $client->deleteBucketTags(new Oss\Models\DeleteBucketTagsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketTagsFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketTags
|
||||
try {
|
||||
$putResult = $client->putBucketTags(new Oss\Models\PutBucketTagsRequest(
|
||||
$bucketName,
|
||||
tagging: new Oss\Models\Tagging(
|
||||
tagSet: new Oss\Models\TagSet(
|
||||
[new Oss\Models\Tag(key: 'key1', value: 'value1'), new Oss\Models\Tag(key: 'key2', value: 'value2')])
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketTags', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketTags
|
||||
try {
|
||||
$getResult = $client->getBucketTags(new Oss\Models\GetBucketTagsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketTags', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBucketTags
|
||||
try {
|
||||
$delResult = $client->deleteBucketTags(new Oss\Models\DeleteBucketTagsRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketTags', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
81
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketTransferAccelerationTest.php
vendored
Normal file
81
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketTransferAccelerationTest.php
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;
|
||||
|
||||
class ClientBucketTransferAccelerationTest extends TestIntegration
|
||||
{
|
||||
public function testBucketTransferAcceleration()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketTransferAcceleration
|
||||
$putResult = $client->putBucketTransferAcceleration(new Oss\Models\PutBucketTransferAccelerationRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\TransferAccelerationConfiguration(
|
||||
true
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketTransferAcceleration
|
||||
$getResult = $client->getBucketTransferAcceleration(new Oss\Models\GetBucketTransferAccelerationRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketTransferAccelerationFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketTransferAcceleration
|
||||
try {
|
||||
$putResult = $client->putBucketTransferAcceleration(new Oss\Models\PutBucketTransferAccelerationRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\TransferAccelerationConfiguration(
|
||||
true
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketTransferAcceleration', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketTransferAcceleration
|
||||
try {
|
||||
$getResult = $client->getBucketTransferAcceleration(new Oss\Models\GetBucketTransferAccelerationRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketTransferAcceleration', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
242
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketWebsiteTest.php
vendored
Normal file
242
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketWebsiteTest.php
vendored
Normal file
@@ -0,0 +1,242 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketWebsiteTest extends TestIntegration
|
||||
{
|
||||
public function testBucketWebsite()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// PutBucketWebsite
|
||||
$putResult = $client->putBucketWebsite(new Oss\Models\PutBucketWebsiteRequest(
|
||||
$bucketName,
|
||||
websiteConfiguration: new Oss\Models\WebsiteConfiguration(
|
||||
indexDocument: new Oss\Models\IndexDocument(
|
||||
suffix: 'index.html', supportSubDir: true, type: 0
|
||||
),
|
||||
errorDocument: new Oss\Models\ErrorDocument(
|
||||
key: 'error.html', httpStatus: 404
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetBucketWebsite
|
||||
$getResult = $client->getBucketWebsite(new Oss\Models\GetBucketWebsiteRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeleteBucketWebsite
|
||||
$delResult = $client->deleteBucketWebsite(new Oss\Models\DeleteBucketWebsiteRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
|
||||
// PutBucketWebsite
|
||||
$putResult = $client->putBucketWebsite(new Oss\Models\PutBucketWebsiteRequest(
|
||||
$bucketName,
|
||||
websiteConfiguration: new Oss\Models\WebsiteConfiguration(
|
||||
indexDocument: new Oss\Models\IndexDocument(
|
||||
suffix: 'index.html', supportSubDir: true, type: 0
|
||||
),
|
||||
errorDocument: new Oss\Models\ErrorDocument(
|
||||
key: 'error.html', httpStatus: 404
|
||||
),
|
||||
routingRules: new Oss\Models\RoutingRules([
|
||||
new Oss\Models\RoutingRule(
|
||||
redirect: new Oss\Models\RoutingRuleRedirect(
|
||||
mirrorPassOriginalSlashes: false,
|
||||
redirectType: 'Mirror',
|
||||
mirrorURL: 'http://example.com/',
|
||||
mirrorPassQueryString: true,
|
||||
mirrorCheckMd5: true,
|
||||
mirrorSNI: true,
|
||||
replaceKeyPrefixWith: "def/",
|
||||
mirrorFollowRedirect: true,
|
||||
hostName: "example.com",
|
||||
mirrorHeaders: new Oss\Models\MirrorHeaders(
|
||||
passs: ["myheader-key1", "myheader-key2"],
|
||||
sets: array(
|
||||
new Oss\Models\MirrorHeaderSet(key: 'myheader-key5', value: 'myheader-value5'),
|
||||
),
|
||||
passAll: true,
|
||||
),
|
||||
passQueryString: true,
|
||||
enableReplacePrefix: true,
|
||||
httpRedirectCode: 301,
|
||||
mirrorURLSlave: 'http://example.com/',
|
||||
mirrorSaveOssMeta: true,
|
||||
mirrorProxyPass: false,
|
||||
mirrorAllowGetImageInfo: true,
|
||||
mirrorAllowVideoSnapshot: false,
|
||||
mirrorIsExpressTunnel: true,
|
||||
mirrorDstRegion: 'cn-hangzhou',
|
||||
mirrorUserLastModified: false,
|
||||
mirrorSwitchAllErrors: true,
|
||||
mirrorUsingRole: true,
|
||||
mirrorRole: 'aliyun-test-role',
|
||||
mirrorAllowHeadObject: true,
|
||||
transparentMirrorResponseCodes: '400',
|
||||
mirrorTaggings: new Oss\Models\MirrorTaggings(
|
||||
taggings: [new Oss\Models\MirrorTagging(
|
||||
value: 'v',
|
||||
key: 'k'
|
||||
)]
|
||||
),
|
||||
mirrorReturnHeaders: new Oss\Models\MirrorReturnHeaders(
|
||||
returnHeaders: [
|
||||
new Oss\Models\ReturnHeader(
|
||||
key: 'k',
|
||||
value: 'v'
|
||||
)
|
||||
]
|
||||
),
|
||||
mirrorAuth: new Oss\Models\MirrorAuth(
|
||||
'S3V4', 'ap-southeast-1', 'TESTAK', 'TESTSK'
|
||||
),
|
||||
mirrorMultiAlternates: new Oss\Models\MirrorMultiAlternates(
|
||||
[
|
||||
new Oss\Models\MirrorMultiAlternate(
|
||||
mirrorMultiAlternateNumber: 32, mirrorMultiAlternateURL: 'https://test-multi-alter.example.com', mirrorMultiAlternateVpcId: 'vpc-test-id', mirrorMultiAlternateDstRegion: 'ap-southeast-1'
|
||||
)
|
||||
]
|
||||
)
|
||||
),
|
||||
ruleNumber: 1,
|
||||
condition: new Oss\Models\RoutingRuleCondition(
|
||||
keyPrefixEquals: 'abc/',
|
||||
keySuffixEquals: ".txt",
|
||||
httpErrorCodeReturnedEquals: 404,
|
||||
),
|
||||
luaConfig: new Oss\Models\RoutingRuleLuaConfig(
|
||||
script: "test.lua",
|
||||
)
|
||||
),
|
||||
new Oss\Models\RoutingRule(
|
||||
redirect: new Oss\Models\RoutingRuleRedirect(
|
||||
redirectType: 'AliCDN',
|
||||
mirrorURL: 'http://example.com/',
|
||||
mirrorPassQueryString: true,
|
||||
mirrorCheckMd5: true,
|
||||
mirrorSNI: true,
|
||||
protocol: 'http',
|
||||
mirrorFollowRedirect: true,
|
||||
mirrorHeaders: new Oss\Models\MirrorHeaders(
|
||||
passs: ["myheader-key1", "myheader-key2"],
|
||||
sets: array(
|
||||
new Oss\Models\MirrorHeaderSet(key: 'myheader-key5', value: 'myheader-value5'),
|
||||
),
|
||||
passAll: true,
|
||||
),
|
||||
passQueryString: true,
|
||||
replaceKeyWith: "abc",
|
||||
),
|
||||
ruleNumber: 2,
|
||||
condition: new Oss\Models\RoutingRuleCondition(
|
||||
keyPrefixEquals: 'abc/',
|
||||
keySuffixEquals: ".txt",
|
||||
httpErrorCodeReturnedEquals: 404,
|
||||
),
|
||||
luaConfig: new Oss\Models\RoutingRuleLuaConfig(
|
||||
script: "test.lua",
|
||||
)
|
||||
),
|
||||
]),
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// DeleteBucketWebsite
|
||||
$delResult = $client->deleteBucketWebsite(new Oss\Models\DeleteBucketWebsiteRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testBucketWebsiteFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// PutBucketWebsite
|
||||
try {
|
||||
$putResult = $client->putBucketWebsite(new Oss\Models\PutBucketWebsiteRequest(
|
||||
$bucketName,
|
||||
websiteConfiguration: new Oss\Models\WebsiteConfiguration(
|
||||
indexDocument: new Oss\Models\IndexDocument(
|
||||
suffix: 'index.html', supportSubDir: true, type: 0
|
||||
),
|
||||
errorDocument: new Oss\Models\ErrorDocument(
|
||||
key: 'error.html', httpStatus: 404
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutBucketWebsite', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketWebsite
|
||||
try {
|
||||
$getResult = $client->getBucketWebsite(new Oss\Models\GetBucketWebsiteRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketWebsite', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBucketWebsite
|
||||
try {
|
||||
$delResult = $client->deleteBucketWebsite(new Oss\Models\DeleteBucketWebsiteRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteBucketWebsite', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
183
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketWormTest.php
vendored
Normal file
183
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientBucketWormTest.php
vendored
Normal file
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientBucketWormTest extends TestIntegration
|
||||
{
|
||||
public function testBucketWorm()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// InitiateBucketWorm
|
||||
$initResult = $client->initiateBucketWorm(new Oss\Models\InitiateBucketWormRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\InitiateWormConfiguration(1)
|
||||
));
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertEquals('OK', $initResult->status);
|
||||
$this->assertEquals(True, count($initResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($initResult->requestId));
|
||||
$this->assertNotEmpty($initResult->wormId);
|
||||
|
||||
// GetBucketWorm
|
||||
$getResult = $client->getBucketWorm(new Oss\Models\GetBucketWormRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
$this->assertEquals($initResult->wormId, $getResult->wormConfiguration->wormId);
|
||||
$this->assertNotEmpty($getResult->wormConfiguration->creationDate);
|
||||
$this->assertNotEmpty($getResult->wormConfiguration->retentionPeriodInDays);
|
||||
$this->assertNotEmpty($getResult->wormConfiguration->state);
|
||||
|
||||
// AbortBucketWorm
|
||||
$abortResult = $client->abortBucketWorm(new Oss\Models\AbortBucketWormRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertEquals(204, $abortResult->statusCode);
|
||||
$this->assertEquals('No Content', $abortResult->status);
|
||||
$this->assertEquals(True, count($abortResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($abortResult->requestId));
|
||||
|
||||
// CompleteBucketWorm
|
||||
try {
|
||||
$result = $client->completeBucketWorm(new Oss\Models\CompleteBucketWormRequest(
|
||||
$bucketName,
|
||||
$initResult->wormId
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CompleteBucketWorm', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchWORMConfiguration', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// ExtendBucketWorm
|
||||
try {
|
||||
$result = $client->extendBucketWorm(new Oss\Models\ExtendBucketWormRequest(
|
||||
$bucketName,
|
||||
$initResult->wormId,
|
||||
new Oss\Models\ExtendWormConfiguration(2)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ExtendBucketWorm', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchWORMConfiguration', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testBucketWormFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . "-not-exist";
|
||||
|
||||
// InitiateBucketWorm
|
||||
try {
|
||||
$initResult = $client->initiateBucketWorm(new Oss\Models\InitiateBucketWormRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\InitiateWormConfiguration(1)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error InitiateBucketWorm', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetBucketWorm
|
||||
try {
|
||||
$getResult = $client->getBucketWorm(new Oss\Models\GetBucketWormRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetBucketWorm', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// AbortBucketWorm
|
||||
try {
|
||||
$abortResult = $client->abortBucketWorm(new Oss\Models\AbortBucketWormRequest(
|
||||
$bucketName
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error AbortBucketWorm', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
$wormId = 'not-exist-wormId';
|
||||
|
||||
// CompleteBucketWorm
|
||||
try {
|
||||
$result = $client->completeBucketWorm(new Oss\Models\CompleteBucketWormRequest(
|
||||
$bucketName,
|
||||
$wormId
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CompleteBucketWorm', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// ExtendBucketWorm
|
||||
try {
|
||||
$result = $client->extendBucketWorm(new Oss\Models\ExtendBucketWormRequest(
|
||||
$bucketName,
|
||||
$wormId,
|
||||
new Oss\Models\ExtendWormConfiguration(2)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ExtendBucketWorm', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1010
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientExtensionTest.php
vendored
Normal file
1010
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientExtensionTest.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
57
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientListCloudBoxesTest.php
vendored
Normal file
57
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientListCloudBoxesTest.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
use GuzzleHttp\Psr7\LazyOpenStream;
|
||||
use GuzzleHttp\Psr7\NoSeekStream;
|
||||
use GuzzleHttp\Psr7\BufferStream;
|
||||
|
||||
class ClientListCloudBoxesTest extends TestIntegration
|
||||
{
|
||||
public function testListCloudBoxes()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
|
||||
// ListCloudBoxes
|
||||
try {
|
||||
$result = $client->listCloudBoxes(new Oss\Models\ListCloudBoxesRequest());
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListCloudBoxes', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('You are forbidden to oss-cloudbox:ListCloudBoxes', $se->getErrorMessage());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
} else {
|
||||
$this->assertTrue(false, "should not here");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListCloudBoxesFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
|
||||
try {
|
||||
$result = $client->listCloudBoxes(new Oss\Models\ListCloudBoxesRequest());
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListCloudBoxes', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
380
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientMiscTest.php
vendored
Normal file
380
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientMiscTest.php
vendored
Normal file
@@ -0,0 +1,380 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use GuzzleHttp\Promise as P;
|
||||
use GuzzleHttp\Psr7\LimitStream;
|
||||
use GuzzleHttp\Psr7\LazyOpenStream;
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientMiscTest extends TestIntegration
|
||||
{
|
||||
public function testPutObjectProgress()
|
||||
{
|
||||
$client = self::getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$filename = self::getTempFileName();
|
||||
$size = 512 * 1024 + 1234;
|
||||
$this->generateFile($filename, $size);
|
||||
$handle = fopen($filename, 'rb');
|
||||
$reqeust = new Oss\Models\PutObjectRequest($bucketName, 'key-123+-/123%/345');
|
||||
$reqeust->body = Oss\Utils::streamFor($handle);
|
||||
$gotIncrement = 0;
|
||||
$gotSize = 0;
|
||||
$gotTotal = 0;
|
||||
$reqeust->progressFn = static function (int $increment, int $transferred, int $total) use (&$gotIncrement, &$gotSize, &$gotTotal) {
|
||||
$gotIncrement += $increment;
|
||||
$gotSize = $transferred;
|
||||
$gotTotal = $total;
|
||||
};
|
||||
$client->putObject($reqeust);
|
||||
fclose($handle);
|
||||
$this->assertEquals($size, $gotIncrement);
|
||||
$this->assertEquals($size, $gotSize);
|
||||
$this->assertEquals($size, $gotTotal);
|
||||
}
|
||||
|
||||
public function testAppendObjectProgress()
|
||||
{
|
||||
$client = self::getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$filename = self::getTempFileName();
|
||||
$size = 512 * 1024 + 1234;
|
||||
$this->generateFile($filename, $size);
|
||||
$handle = fopen($filename, 'rb');
|
||||
$reqeust = new Oss\Models\AppendObjectRequest($bucketName, 'append-key-123.txt');
|
||||
$reqeust->position = 0;
|
||||
$reqeust->body = Oss\Utils::streamFor($handle);
|
||||
$gotIncrement = 0;
|
||||
$gotSize = 0;
|
||||
$gotTotal = 0;
|
||||
$reqeust->progressFn = static function (int $increment, int $transferred, int $total) use (&$gotIncrement, &$gotSize, &$gotTotal) {
|
||||
$gotIncrement += $increment;
|
||||
$gotSize = $transferred;
|
||||
$gotTotal = $total;
|
||||
};
|
||||
$client->appendObject($reqeust);
|
||||
fclose($handle);
|
||||
$this->assertEquals($size, $gotIncrement);
|
||||
$this->assertEquals($size, $gotSize);
|
||||
$this->assertEquals($size, $gotTotal);
|
||||
|
||||
$reqeust = new Oss\Models\AppendObjectRequest($bucketName, 'append-key-123.txt');
|
||||
$reqeust->body = Oss\Utils::streamFor('hello world');
|
||||
$reqeust->position = $size;
|
||||
$gotIncrement = 0;
|
||||
$gotSize = 0;
|
||||
$gotTotal = 0;
|
||||
$reqeust->progressFn = static function (int $increment, int $transferred, int $total) use (&$gotIncrement, &$gotSize, &$gotTotal) {
|
||||
$gotIncrement += $increment;
|
||||
$gotSize = $transferred;
|
||||
$gotTotal = $total;
|
||||
};
|
||||
$client->appendObject($reqeust);
|
||||
$this->assertEquals(11, $gotIncrement);
|
||||
$this->assertEquals(11, $gotSize);
|
||||
$this->assertEquals(11, $gotTotal);
|
||||
}
|
||||
|
||||
public function testUploadPartProgress()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$totalSize = 250 * 1024 + 123;
|
||||
$partSize = 100 * 1024;
|
||||
$filename = self::getTempFileName();
|
||||
$this->generateFile($filename, $totalSize);
|
||||
$key = 'bigfile.tmp';
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
$file = fopen($filename, 'rb');
|
||||
$parts = [];
|
||||
$fileStream = Oss\Utils::streamFor($file);
|
||||
$gotIncrement = 0;
|
||||
for ($i = 0, $partNum = 1; $i < $totalSize; $i += $partSize, $partNum++) {
|
||||
$gotSize = 0;
|
||||
$gotTotal = 0;
|
||||
$body = new LimitStream($fileStream, $partSize, $i);
|
||||
$sendSize = $body->getSize();
|
||||
$partResult = $client->uploadPart(
|
||||
new Oss\Models\UploadPartRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$partNum,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$body,
|
||||
static function (int $increment, int $transferred, int $total) use (&$gotIncrement, &$gotSize, &$gotTotal) {
|
||||
$gotIncrement += $increment;
|
||||
$gotSize = $transferred;
|
||||
$gotTotal = $total;
|
||||
}
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $partResult->statusCode);
|
||||
$this->assertEquals($sendSize, $gotSize);
|
||||
$this->assertEquals($sendSize, $gotTotal);
|
||||
$part = new Oss\Models\UploadPart(
|
||||
$partNum,
|
||||
$partResult->etag,
|
||||
);
|
||||
$parts[] = $part;
|
||||
}
|
||||
//$this->assertEquals($totalSize, $gotIncrement);
|
||||
fclose($file);
|
||||
$comResult = $client->completeMultipartUpload(
|
||||
new Oss\Models\CompleteMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
new Oss\Models\CompleteMultipartUpload(
|
||||
$parts
|
||||
),
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $comResult->statusCode);
|
||||
$this->assertEquals(self::$bucketName, $comResult->bucket);
|
||||
$this->assertEquals($key, $comResult->key);
|
||||
$this->assertNotEmpty($comResult->etag);
|
||||
$this->assertNotEmpty($comResult->location);
|
||||
|
||||
$getObj = $client->getObject(new Oss\Models\GetObjectRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
));
|
||||
$objMd5 = base64_encode(md5($getObj->body, true));
|
||||
$fileMd5 = base64_encode(md5(file_get_contents($filename), true));
|
||||
$this->assertEquals($fileMd5, $objMd5);
|
||||
}
|
||||
|
||||
public function testUploadPartUseCoroutine(): void
|
||||
{
|
||||
$totalSize = 250 * 1024 + 123;
|
||||
$partSize = 100 * 1024;
|
||||
$filename = self::getTempFileName();
|
||||
$this->generateFile($filename, $totalSize);
|
||||
$key = 'coroutine.tmp';
|
||||
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
// upload context
|
||||
$context['client'] = self::getDefaultClient();
|
||||
$context['request'] = new Oss\Models\PutObjectRequest($bucketName, $key);
|
||||
$context['filename'] = $filename;
|
||||
$context['parallel_num'] = 2;
|
||||
$context['part_size'] = $partSize;
|
||||
|
||||
// use coroutine
|
||||
$promisor = P\Coroutine::of(function () use (&$context) {
|
||||
$client = $context['client'];
|
||||
|
||||
// initiate multipart upload
|
||||
$request = new Oss\Models\InitiateMultipartUploadRequest();
|
||||
Oss\Utils::copyRequest($request, $context['request']);
|
||||
yield $client->initiateMultipartUploadAsync($request)->then(
|
||||
function (Oss\Models\InitiateMultipartUploadResult $result) use (&$context) {
|
||||
$context['upload_id'] = $result->uploadId;
|
||||
},
|
||||
);
|
||||
|
||||
// upload part
|
||||
$context['errors'] = [];
|
||||
$context['parts'] = [];
|
||||
$uploadFns = function () use (&$context) {
|
||||
$client = $context['client'];
|
||||
$part_size = intval($context['part_size']);
|
||||
$filepath = strval($context['filename']);
|
||||
$source = new LazyOpenStream($filepath, 'rb');
|
||||
$source->seek(0);
|
||||
|
||||
for ($partNumber = 1; $source->tell() < $source->getSize(); $partNumber++) {
|
||||
$body = new LimitStream(
|
||||
new LazyOpenStream($source->getMetadata('uri'), 'rb'),
|
||||
$part_size,
|
||||
$source->tell()
|
||||
);
|
||||
$source->seek(min($source->tell() + $part_size, $source->getSize()));
|
||||
|
||||
$request = new Oss\Models\UploadPartRequest();
|
||||
Oss\Utils::copyRequest($request, $context['request']);
|
||||
$request->partNumber = $partNumber;
|
||||
$request->uploadId = $context['upload_id'];
|
||||
$request->body = $body;
|
||||
yield $partNumber => $client->uploadPartAsync($request)->otherwise(
|
||||
function ($reason) use (&$context) {
|
||||
$context['errors'][] = $reason;
|
||||
return P\Create::rejectionFor($reason);
|
||||
},
|
||||
);
|
||||
if (!empty($context['errors'])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$each = new P\EachPromise(
|
||||
$uploadFns(),
|
||||
[
|
||||
'concurrency' => $context['parallel_num'],
|
||||
'fulfilled' => function (Oss\Models\UploadPartResult $result, $key) use (&$context) {
|
||||
$context['parts'][] = new Oss\Models\UploadPart($key, $result->etag);
|
||||
return $result;
|
||||
}
|
||||
]
|
||||
);
|
||||
yield $each->promise();
|
||||
|
||||
if (!empty($context['errors'])) {
|
||||
throw end($context['errors']);
|
||||
}
|
||||
|
||||
$parts = $context['parts'];
|
||||
usort($parts, function ($a, $b) {
|
||||
if ($a->partNumber == $b->partNumber)
|
||||
return 0;
|
||||
return $a->partNumber < $b->partNumber ? -1 : 1;
|
||||
});
|
||||
$request = new Oss\Models\CompleteMultipartUploadRequest();
|
||||
Oss\Utils::copyRequest($request, $context['request']);
|
||||
$request->uploadId = $context['upload_id'];
|
||||
$request->completeMultipartUpload = new Oss\Models\CompleteMultipartUpload($parts);
|
||||
yield $client->completeMultipartUploadAsync($request)->then(
|
||||
function (Oss\Models\CompleteMultipartUploadResult $result) use (&$context) {
|
||||
$context['upload_result'] = $result;
|
||||
return $result;
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
// wait finish
|
||||
$promisor->wait();
|
||||
|
||||
// check result
|
||||
$result = $context['upload_result'];
|
||||
$this->assertInstanceOf(Oss\Models\CompleteMultipartUploadResult::class, $result);
|
||||
if ($result instanceof Oss\Models\CompleteMultipartUploadResult) {
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertStringEndsWith('-3"', $result->etag);
|
||||
}
|
||||
|
||||
$fileMd5 = md5(file_get_contents($filename), true);
|
||||
$objectMd5 = md5($this->object_get_contents(self::getDefaultClient(), $bucketName, $key), true);
|
||||
$this->assertEquals($fileMd5, $objectMd5);
|
||||
}
|
||||
|
||||
public function testGetObjectIntoSink(): void
|
||||
{
|
||||
$client = self::getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$filename = self::getTempFileName();
|
||||
$key = self::randomObjectName();
|
||||
$size = 123 * 1024 + 1234;
|
||||
$this->generateFile($filename, $size);
|
||||
$content = file_get_contents($filename);
|
||||
$handle = fopen($filename, 'rb');
|
||||
$request = new Oss\Models\PutObjectRequest($bucketName, $key);
|
||||
$request->body = Oss\Utils::streamFor($handle);
|
||||
$result = $client->putObject($request);
|
||||
fclose($handle);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
|
||||
// use sink to save object into file
|
||||
$filenameSave = self::getTempFileName();
|
||||
$this->assertFileNotEquals($filename, $filenameSave);
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $key);
|
||||
$result = $client->getObject(
|
||||
$request,
|
||||
[
|
||||
'request_options' =>
|
||||
['sink' => $filenameSave]
|
||||
]
|
||||
);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertFileEquals($filename, $filenameSave);
|
||||
$this->assertNull($result->body);
|
||||
|
||||
// use sink to save object into memeroy
|
||||
$sink = \GuzzleHttp\Psr7\Utils::tryFopen('php://temp', 'w+');
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $key);
|
||||
$result = $client->getObject(
|
||||
$request,
|
||||
[
|
||||
'request_options' =>
|
||||
['sink' => $sink]
|
||||
]
|
||||
);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertNotNull($result->body);
|
||||
$this->assertEquals($content, $result->body->getContents());
|
||||
}
|
||||
|
||||
public function testGetObjectStreamMode(): void
|
||||
{
|
||||
$client = self::getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$filename = self::getTempFileName();
|
||||
$key = self::randomObjectName();
|
||||
$size = 123 * 1024 + 1234;
|
||||
$this->generateFile($filename, $size);
|
||||
$content = file_get_contents($filename);
|
||||
$handle = fopen($filename, 'rb');
|
||||
$request = new Oss\Models\PutObjectRequest($bucketName, $key);
|
||||
$request->body = Oss\Utils::streamFor($handle);
|
||||
$result = $client->putObject($request);
|
||||
fclose($handle);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
|
||||
// use non stream
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $key);
|
||||
$result = $client->getObject(
|
||||
$request,
|
||||
[
|
||||
'request_options' =>
|
||||
['stream' => false]
|
||||
]
|
||||
);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertNotNull($result->body);
|
||||
$this->assertTrue($result->body->isSeekable());
|
||||
$this->assertEquals($content, $result->body->getContents());
|
||||
$this->assertEquals($size, $result->body->getSize());
|
||||
$this->assertEquals('', $result->body->read(100));
|
||||
|
||||
// use stream
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $key);
|
||||
$result = $client->getObject(
|
||||
$request,
|
||||
[
|
||||
'request_options' =>
|
||||
['stream' => true]
|
||||
]
|
||||
);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertNotNull($result->body);
|
||||
$this->assertFalse($result->body->isSeekable());
|
||||
$this->assertNull($result->body->getSize());
|
||||
$this->assertEquals($content, $result->body->getContents());
|
||||
$this->assertEquals('', $result->body->read(100));
|
||||
}
|
||||
|
||||
}
|
||||
634
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientObjectBasicTest.php
vendored
Normal file
634
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientObjectBasicTest.php
vendored
Normal file
@@ -0,0 +1,634 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
use SebastianBergmann\Type\ObjectType;
|
||||
|
||||
class ClientObjectBasicTest extends TestIntegration
|
||||
{
|
||||
public function testObjectBasic()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = self::randomObjectName();
|
||||
|
||||
// put object
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// get object
|
||||
$result = $client->getObject(new Oss\Models\GetObjectRequest(
|
||||
$bucketName,
|
||||
$key
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// copy object
|
||||
$destKey = self::randomObjectName() . '-dest';
|
||||
$copyObjRequest = new Oss\Models\CopyObjectRequest(
|
||||
$bucketName,
|
||||
$destKey,
|
||||
);
|
||||
$copyObjRequest->sourceKey = $key;
|
||||
$result = $client->copyObject($copyObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// append object
|
||||
$appendKey = self::randomObjectName() . '-append';
|
||||
$appendObjRequest = new Oss\Models\AppendObjectRequest(
|
||||
$bucketName,
|
||||
$appendKey,
|
||||
0
|
||||
);
|
||||
$result = $client->appendObject($appendObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// head object
|
||||
$headObjRequest = new Oss\Models\HeadObjectRequest(
|
||||
$bucketName,
|
||||
$appendKey,
|
||||
);
|
||||
$result = $client->headObject($headObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// get object meta
|
||||
$getObjMetaRequest = new Oss\Models\GetObjectMetaRequest(
|
||||
$bucketName,
|
||||
$appendKey,
|
||||
);
|
||||
$result = $client->getObjectMeta($getObjMetaRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// restore object
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$putObjRequest->storageClass = Oss\Models\StorageClassType::DEEP_COLD_ARCHIVE;
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
$restoreObjRequest = new Oss\Models\RestoreObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$restoreObjRequest->restoreRequest = new Oss\Models\RestoreRequest(3);
|
||||
$result = $client->restoreObject($restoreObjRequest);
|
||||
$this->assertEquals(202, $result->statusCode);
|
||||
$this->assertEquals('Accepted', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// clean restored object
|
||||
try {
|
||||
$result = $client->cleanRestoredObject(new Oss\Models\CleanRestoredObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CleanRestoredObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('ArchiveRestoreNotFinished', $se->getErrorCode());
|
||||
$this->assertEquals(409, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
// delete object
|
||||
$delObjRequest = new Oss\Models\DeleteObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$result = $client->deleteObject($delObjRequest);
|
||||
$this->assertEquals(204, $result->statusCode);
|
||||
$this->assertEquals('No Content', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// delete objects
|
||||
$delObjsRequest = new Oss\Models\DeleteMultipleObjectsRequest(
|
||||
$bucketName,
|
||||
);
|
||||
$delArray = [];
|
||||
for ($i = 1; $i <= 10; $i++) {
|
||||
// put object
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key . $i,
|
||||
);
|
||||
$delArray[] = new Oss\Models\ObjectIdentifier($key . $i);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
}
|
||||
$delObjsRequest->delete = new Oss\Models\Delete($delArray);
|
||||
$result = $client->deleteMultipleObjects($delObjsRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
}
|
||||
|
||||
public function testObjectBasicFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = self::randomObjectName();
|
||||
try {
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $client->getObject(new Oss\Models\GetObjectRequest(
|
||||
$bucketName,
|
||||
$key
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$destKey = self::randomObjectName() . '-dest';
|
||||
$copyObjRequest = new Oss\Models\CopyObjectRequest(
|
||||
$bucketName,
|
||||
$destKey,
|
||||
);
|
||||
$copyObjRequest->sourceKey = $key;
|
||||
$result = $client->copyObject($copyObjRequest);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CopyObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
// append object
|
||||
try {
|
||||
$appendKey = self::randomObjectName() . '-append';
|
||||
$appendObjRequest = new Oss\Models\AppendObjectRequest(
|
||||
$bucketName,
|
||||
$appendKey,
|
||||
0
|
||||
);
|
||||
$result = $client->appendObject($appendObjRequest);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error AppendObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
// seal append object
|
||||
try {
|
||||
$sealAppendObjRequest = new Oss\Models\SealAppendObjectRequest(
|
||||
$bucketName,
|
||||
$appendKey,
|
||||
0
|
||||
);
|
||||
$result = $client->sealAppendObject($sealAppendObjRequest);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error SealAppendObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
// head object
|
||||
try {
|
||||
$headObjRequest = new Oss\Models\HeadObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$result = $client->headObject($headObjRequest);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error HeadObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$metaObjRequest = new Oss\Models\GetObjectMetaRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$result = $client->getObjectMeta($metaObjRequest);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetObjectMeta', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $client->restoreObject(new Oss\Models\RestoreObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
null,
|
||||
new Oss\Models\RestoreRequest(3)
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error RestoreObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $client->cleanRestoredObject(new Oss\Models\CleanRestoredObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error CleanRestoredObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
// delete object
|
||||
try {
|
||||
$delObjRequest = new Oss\Models\DeleteObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$result = $client->deleteObject($delObjRequest);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteObject', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
// delete objects
|
||||
try {
|
||||
$delObjRequest = new Oss\Models\DeleteMultipleObjectsRequest(
|
||||
$bucketName,
|
||||
);
|
||||
$delObjRequest->delete = new Oss\Models\Delete(
|
||||
[
|
||||
new Oss\Models\ObjectIdentifier('key1'),
|
||||
new Oss\Models\ObjectIdentifier('key2', 'version-id-2'),
|
||||
], true
|
||||
);
|
||||
$result = $client->deleteMultipleObjects($delObjRequest);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteMultipleObjects', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testObjectAcl()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = self::randomObjectName();
|
||||
|
||||
// put object
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// put object acl
|
||||
$result = $client->putObjectAcl(new Oss\Models\PutObjectAclRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
Oss\Models\ObjectACLType::PRIVATE
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// get object acl
|
||||
$result = $client->getObjectAcl(new Oss\Models\GetObjectAclRequest(
|
||||
$bucketName,
|
||||
$key
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertNull($result->versionId);
|
||||
$this->assertEquals(Oss\Models\ObjectACLType::PRIVATE, $result->accessControlList->grant);
|
||||
}
|
||||
|
||||
public function testObjectAclFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = self::randomObjectName() . "-not-exist";
|
||||
try {
|
||||
$result = $client->putObjectAcl(new Oss\Models\PutObjectAclRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
Oss\Models\ObjectACLType::PRIVATE
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutObjectAcl', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchKey', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $client->getObjectAcl(new Oss\Models\GetObjectAclRequest(
|
||||
$bucketName,
|
||||
$key
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetObjectAcl', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchKey', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testObjectTagging()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = self::randomObjectName();
|
||||
|
||||
// put object
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// put object tagging
|
||||
$result = $client->putObjectTagging(new Oss\Models\PutObjectTaggingRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
new Oss\Models\Tagging(
|
||||
new Oss\Models\TagSet(
|
||||
[new Oss\Models\Tag('k1', 'v1'), new Oss\Models\Tag('k2', 'v2')]
|
||||
)
|
||||
)
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// get object tagging
|
||||
$result = $client->getObjectTagging(new Oss\Models\GetObjectTaggingRequest(
|
||||
$bucketName,
|
||||
$key
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
$this->assertNull($result->versionId);
|
||||
$this->assertEquals(2, count($result->tagSet->tags));
|
||||
|
||||
// delete object tagging
|
||||
$result = $client->deleteObjectTagging(new Oss\Models\DeleteObjectTaggingRequest(
|
||||
$bucketName,
|
||||
$key
|
||||
));
|
||||
$this->assertEquals(204, $result->statusCode);
|
||||
$this->assertEquals('No Content', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
}
|
||||
|
||||
public function testObjectTaggingFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = self::randomObjectName() . "-not-exist";
|
||||
try {
|
||||
$result = $client->putObjectTagging(new Oss\Models\PutObjectTaggingRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
new Oss\Models\Tagging(
|
||||
new Oss\Models\TagSet(
|
||||
[new Oss\Models\Tag('k1', 'v1'), new Oss\Models\Tag('k2', 'v2')]
|
||||
)
|
||||
)
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutObjectTagging', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchKey', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $client->getObjectTagging(new Oss\Models\GetObjectTaggingRequest(
|
||||
$bucketName,
|
||||
$key
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetObjectTagging', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchKey', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $client->deleteObjectTagging(new Oss\Models\DeleteObjectTaggingRequest(
|
||||
$bucketName,
|
||||
$key
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeleteObjectTagging', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchKey', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testSymlink()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = self::randomObjectName() . '-target';
|
||||
|
||||
// put object
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// put symlink
|
||||
$symlinkKey = self::randomObjectName() . '-symlink';
|
||||
$result = $client->putSymlink(new Oss\Models\PutSymlinkRequest(
|
||||
$bucketName,
|
||||
$symlinkKey,
|
||||
$key
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
|
||||
// get symlink
|
||||
$result = $client->getSymlink(new Oss\Models\GetSymlinkRequest(
|
||||
$bucketName,
|
||||
$symlinkKey
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
$this->assertEquals(True, count($result->headers) > 0);
|
||||
$this->assertEquals(24, strlen($result->requestId));
|
||||
}
|
||||
|
||||
public function testSymlinkFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
$key = self::randomObjectName() . "-target";
|
||||
$symlinkKey = self::randomObjectName() . '-symlink';
|
||||
try {
|
||||
$result = $client->putSymlink(new Oss\Models\PutSymlinkRequest(
|
||||
$bucketName,
|
||||
$symlinkKey,
|
||||
$key
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutSymlink', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $client->getSymlink(new Oss\Models\GetSymlinkRequest(
|
||||
$bucketName,
|
||||
$symlinkKey,
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetSymlink', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
433
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientObjectMultipartTest.php
vendored
Normal file
433
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientObjectMultipartTest.php
vendored
Normal file
@@ -0,0 +1,433 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientObjectMultipartTest extends TestIntegration
|
||||
{
|
||||
public function testObjectMultipart()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
// test initiateMultipartUpload, uploadPart, completeMultipartUpload
|
||||
$partSize = 200 * 1024;
|
||||
$key = 'bigfile.tmp';
|
||||
try {
|
||||
$bigFileName = self::getTempFileName() . "-bigfile.tmp";
|
||||
if (!file_exists($bigFileName)) {
|
||||
$this->generateFile($bigFileName, 500 * 1024);
|
||||
}
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
$file = fopen($bigFileName, 'r');
|
||||
$parts = array();
|
||||
if ($file) {
|
||||
$i = 1;
|
||||
while (!feof($file)) {
|
||||
$chunk = fread($file, $partSize);
|
||||
$partResult = $client->uploadPart(
|
||||
new Oss\Models\UploadPartRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$i,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
Oss\Utils::streamFor($chunk)
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $partResult->statusCode);
|
||||
$part = new Oss\Models\UploadPart(
|
||||
$i,
|
||||
$partResult->etag,
|
||||
);
|
||||
array_push($parts, $part);
|
||||
$i++;
|
||||
}
|
||||
fclose($file);
|
||||
}
|
||||
$comResult = $client->completeMultipartUpload(
|
||||
new Oss\Models\CompleteMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
new Oss\Models\CompleteMultipartUpload(
|
||||
$parts
|
||||
),
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $comResult->statusCode);
|
||||
$this->assertEquals(self::$bucketName, $comResult->bucket);
|
||||
$this->assertEquals($key, $comResult->key);
|
||||
$this->assertNotEmpty($comResult->etag);
|
||||
$this->assertNotEmpty($comResult->location);
|
||||
$getObj = $client->getObject(new Oss\Models\GetObjectRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
));
|
||||
$this->assertEquals(base64_encode(md5(file_get_contents($bigFileName), true)), base64_encode(md5($getObj->body, true)));
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, "should not here");
|
||||
}
|
||||
|
||||
// test initiateMultipartUpload, uploadPartCopy, completeMultipartUpload
|
||||
try {
|
||||
$key1 = self::randomObjectName() . "\f\v\t";
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key1,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
|
||||
$partResult = $client->uploadPartCopy(
|
||||
new Oss\Models\UploadPartCopyRequest(
|
||||
self::$bucketName,
|
||||
$key1,
|
||||
1,
|
||||
$initResult->uploadId,
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $partResult->statusCode);
|
||||
$comResult = $client->completeMultipartUpload(
|
||||
new Oss\Models\CompleteMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key1,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
'yes',
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $comResult->statusCode);
|
||||
$this->assertEquals(self::$bucketName, $comResult->bucket);
|
||||
$this->assertEquals($key1, $comResult->key);
|
||||
$this->assertNotEmpty($comResult->etag);
|
||||
$this->assertNotEmpty($comResult->location);
|
||||
$client->deleteObject(new Oss\Models\DeleteObjectRequest(
|
||||
self::$bucketName,
|
||||
$key1,
|
||||
));
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, "should not here");
|
||||
}
|
||||
|
||||
$client->deleteObject(new Oss\Models\DeleteObjectRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
));
|
||||
|
||||
// test listParts and listMultipartUploads
|
||||
$objectPrefix = self::randomObjectName();
|
||||
try {
|
||||
for ($i = 0; $i < 3; $i++) {
|
||||
$key = $objectPrefix . $i;
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
$file = fopen($bigFileName, 'r');
|
||||
if ($file) {
|
||||
$n = 1;
|
||||
while (!feof($file)) {
|
||||
$chunk = fread($file, $partSize);
|
||||
$partResult = $client->uploadPart(
|
||||
new Oss\Models\UploadPartRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$n,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
Oss\Utils::streamFor($chunk)
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $partResult->statusCode);
|
||||
$n++;
|
||||
}
|
||||
fclose($file);
|
||||
}
|
||||
}
|
||||
$listUploads = $client->listMultipartUploads(
|
||||
new Oss\Models\ListMultipartUploadsRequest(
|
||||
self::$bucketName,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $listUploads->statusCode);
|
||||
$this->assertCount(3, $listUploads->uploads);
|
||||
|
||||
$listParts = $client->listParts(
|
||||
new Oss\Models\ListPartsRequest(
|
||||
self::$bucketName,
|
||||
$listUploads->uploads[0]->key,
|
||||
$listUploads->uploads[0]->uploadId,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $listParts->statusCode);
|
||||
$this->assertCount(3, $listParts->parts);
|
||||
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, "should not here");
|
||||
}
|
||||
// test abortMultipartUpload
|
||||
try {
|
||||
foreach ($listUploads->uploads as $k => $upload) {
|
||||
$abort = $client->abortMultipartUpload(
|
||||
new Oss\Models\AbortMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$upload->key,
|
||||
$upload->uploadId,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(204, $abort->statusCode);
|
||||
}
|
||||
$listUploads = $client->listMultipartUploads(
|
||||
new Oss\Models\ListMultipartUploadsRequest(
|
||||
self::$bucketName,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $listUploads->statusCode);
|
||||
$this->assertNull($listUploads->uploads);
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, "should not here");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testObjectMultipartFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$invalidAkClient = $this->getInvalidAkClient();
|
||||
$partSize = 200 * 1024;
|
||||
$key = 'bigfile.tmp';
|
||||
$bigFileName = self:: getTempFileName() . "-bigfile.tmp";
|
||||
if (!file_exists($bigFileName)) {
|
||||
$this->generateFile($bigFileName, 500 * 1024);
|
||||
}
|
||||
|
||||
// test initiateMultipartUpload
|
||||
try {
|
||||
$invalidAkClient->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error InitiateMultipartUpload', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
// test uploadPart
|
||||
try {
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
$invalidAkClient->uploadPart(
|
||||
new Oss\Models\UploadPartRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
1,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
Oss\Utils::streamFor($bigFileName)
|
||||
)
|
||||
);
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertStringContainsString('Operation error UploadPart', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
// test uploadPartCopy
|
||||
try {
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
$client->uploadPart(
|
||||
new Oss\Models\UploadPartRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
1,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
Oss\Utils::streamFor($bigFileName)
|
||||
)
|
||||
);
|
||||
$invalidAkClient->uploadPartCopy(
|
||||
new Oss\Models\UploadPartCopyRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
1,
|
||||
$initResult->uploadId,
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertStringContainsString('Operation error UploadPartCopy', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
$file = fopen($bigFileName, 'r');
|
||||
$parts = array();
|
||||
if ($file) {
|
||||
$i = 1;
|
||||
while (!feof($file)) {
|
||||
$chunk = fread($file, $partSize);
|
||||
$partResult = $client->uploadPart(
|
||||
new Oss\Models\UploadPartRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$i,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
Oss\Utils::streamFor($chunk)
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $partResult->statusCode);
|
||||
$part = new Oss\Models\UploadPart(
|
||||
$i,
|
||||
$partResult->etag,
|
||||
);
|
||||
array_push($parts, $part);
|
||||
$i++;
|
||||
}
|
||||
fclose($file);
|
||||
}
|
||||
$invalidAkClient->completeMultipartUpload(
|
||||
new Oss\Models\CompleteMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
new Oss\Models\CompleteMultipartUpload(
|
||||
$parts
|
||||
),
|
||||
)
|
||||
);
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertStringContainsString('Operation error CompleteMultipartUpload', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$invalidAkClient->listMultipartUploads(
|
||||
new Oss\Models\ListMultipartUploadsRequest(
|
||||
self::$bucketName,
|
||||
)
|
||||
);
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertStringContainsString('Operation error ListMultipartUploads', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$invalidAkClient->listParts(
|
||||
new Oss\Models\ListPartsRequest(
|
||||
self::$bucketName,
|
||||
$initResult->uploadId,
|
||||
$initResult->key,
|
||||
)
|
||||
);
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertStringContainsString('Operation error ListParts', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
$listUploads = $client->listMultipartUploads(
|
||||
new Oss\Models\ListMultipartUploadsRequest(
|
||||
self::$bucketName,
|
||||
)
|
||||
);
|
||||
|
||||
foreach ($listUploads->uploads as $k => $upload) {
|
||||
$abort = $client->abortMultipartUpload(
|
||||
new Oss\Models\AbortMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$upload->key,
|
||||
$upload->uploadId,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(204, $abort->statusCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
774
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientPaginatorTest.php
vendored
Normal file
774
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientPaginatorTest.php
vendored
Normal file
@@ -0,0 +1,774 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientPaginatorTest extends TestIntegration
|
||||
{
|
||||
public function testListObjectsPaginator()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$key = self::randomObjectName();
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
|
||||
$paginator = new Oss\Paginator\ListObjectsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListObjectsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertEquals($key, $content->key);
|
||||
}
|
||||
}
|
||||
$result = $client->deleteObject(new Oss\Models\DeleteObjectRequest(
|
||||
$bucketName, $key
|
||||
));
|
||||
$this->assertEquals(204, $result->statusCode);
|
||||
}
|
||||
|
||||
public function testListObjectsPaginatorFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListObjectsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListObjectsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjects', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testListObjectsPaginatorAsync()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$key = self::randomObjectName();
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
|
||||
$paginator = new Oss\Paginator\ListObjectsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListObjectsRequest($bucketName),
|
||||
['limit' => 10]
|
||||
);
|
||||
$this->assertTrue(is_object($iterPromise));
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertEquals($key, $content->key);
|
||||
}
|
||||
}
|
||||
$result = $client->deleteObject(new Oss\Models\DeleteObjectRequest(
|
||||
$bucketName, $key
|
||||
));
|
||||
$this->assertEquals(204, $result->statusCode);
|
||||
}
|
||||
|
||||
public function testListObjectsPaginatorAsyncFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListObjectsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListObjectsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjects', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testListObjectsV2Paginator()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$key = self::randomObjectName();
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
|
||||
$paginator = new Oss\Paginator\ListObjectsV2Paginator($client);
|
||||
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListObjectsV2Request($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
$this->assertTrue(is_object($iter));
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertEquals($key, $content->key);
|
||||
}
|
||||
}
|
||||
$result = $client->deleteObject(new Oss\Models\DeleteObjectRequest(
|
||||
$bucketName, $key
|
||||
));
|
||||
$this->assertEquals(204, $result->statusCode);
|
||||
}
|
||||
|
||||
public function testListObjectsV2PaginatorFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListObjectsV2Paginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListObjectsV2Request($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjects', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testListObjectsV2PaginatorAsync()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$key = self::randomObjectName();
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
|
||||
$paginator = new Oss\Paginator\ListObjectsV2Paginator($client);
|
||||
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListObjectsV2Request($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
$this->assertTrue(is_object($iterPromise));
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertEquals($key, $content->key);
|
||||
}
|
||||
}
|
||||
$result = $client->deleteObject(new Oss\Models\DeleteObjectRequest(
|
||||
$bucketName, $key
|
||||
));
|
||||
$this->assertEquals(204, $result->statusCode);
|
||||
}
|
||||
|
||||
public function testListObjectsV2PaginatorAsyncFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListObjectsV2Paginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListObjectsV2Request($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjects', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testListObjectVersionsPaginator()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$key = self::randomObjectName();
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
|
||||
$paginator = new Oss\Paginator\ListObjectVersionsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListObjectVersionsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertEquals($key, $content->key);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testListObjectVersionsPaginatorFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListObjectVersionsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListObjectVersionsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjectVersions', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testListObjectVersionsPaginatorAsync()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$key = self::randomObjectName();
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$key,
|
||||
);
|
||||
$body = 'hi oss';
|
||||
$putObjRequest->body = Oss\Utils::streamFor($body);
|
||||
$result = $client->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
|
||||
$paginator = new Oss\Paginator\ListObjectVersionsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListObjectVersionsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
$this->assertTrue(is_object($iterPromise));
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertEquals($key, $content->key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListObjectVersionsPaginatorAsyncFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListObjectVersionsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListObjectVersionsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListObjectVersions', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testListMultipartUploadsPaginator()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = 'bigfile.tmp';
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
|
||||
$paginator = new Oss\Paginator\ListMultipartUploadsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListMultipartUploadsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->uploads ?? [] as $upload) {
|
||||
$this->assertEquals($key, $upload->key);
|
||||
$this->assertEquals($initResult->uploadId, $upload->uploadId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListMultipartUploadsPaginatorFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListMultipartUploadsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListMultipartUploadsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->uploads ?? [] as $upload) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListMultipartUploads', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListMultipartUploadsPaginatorAsync()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = 'bigfile.tmp';
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
|
||||
$paginator = new Oss\Paginator\ListObjectsV2Paginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListObjectsV2Request($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
$this->assertTrue(is_object($iterPromise));
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->uploads ?? [] as $upload) {
|
||||
$this->assertEquals($key, $upload->key);
|
||||
$this->assertEquals($initResult->uploadId, $upload->uploadId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListMultipartUploadsPaginatorAsyncFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListMultipartUploadsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListMultipartUploadsRequest($bucketName),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->uploads ?? [] as $upload) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListMultipartUploads', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListPartsPaginator()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$partSize = 200 * 1024;
|
||||
$bigFileName = self::getTempFileName() . "-bigfile.tmp";
|
||||
if (!file_exists($bigFileName)) {
|
||||
$this->generateFile($bigFileName, 500 * 1024);
|
||||
}
|
||||
$key = 'bigfile.tmp';
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
|
||||
$file = fopen($bigFileName, 'r');
|
||||
$parts = array();
|
||||
if ($file) {
|
||||
$i = 1;
|
||||
while (!feof($file)) {
|
||||
$chunk = fread($file, $partSize);
|
||||
$partResult = $client->uploadPart(
|
||||
new Oss\Models\UploadPartRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$i,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
Oss\Utils::streamFor($chunk)
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $partResult->statusCode);
|
||||
$part = new Oss\Models\UploadPart(
|
||||
$i,
|
||||
$partResult->etag,
|
||||
);
|
||||
array_push($parts, $part);
|
||||
$i++;
|
||||
}
|
||||
fclose($file);
|
||||
}
|
||||
|
||||
$paginator = new Oss\Paginator\ListPartsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListPartsRequest($bucketName, $key, $initResult->uploadId),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->parts ?? [] as $part) {
|
||||
$this->assertNotEmpty($part->partNumber);
|
||||
$this->assertNotEmpty($part->etag);
|
||||
$this->assertNotEmpty($part->size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListPartsPaginatorFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListPartsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListPartsRequest($bucketName, "not-exist", "not-exist"),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->parts ?? [] as $part) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListParts', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListPartsPaginatorAsync()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$partSize = 200 * 1024;
|
||||
$bigFileName = self::getTempFileName() . "-bigfile.tmp";
|
||||
if (!file_exists($bigFileName)) {
|
||||
$this->generateFile($bigFileName, 500 * 1024);
|
||||
}
|
||||
$key = 'bigfile.tmp';
|
||||
$initResult = $client->initiateMultipartUpload(
|
||||
new Oss\Models\InitiateMultipartUploadRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $initResult->statusCode);
|
||||
$this->assertNotEmpty($initResult->uploadId);
|
||||
|
||||
$file = fopen($bigFileName, 'r');
|
||||
$parts = array();
|
||||
if ($file) {
|
||||
$i = 1;
|
||||
while (!feof($file)) {
|
||||
$chunk = fread($file, $partSize);
|
||||
$partResult = $client->uploadPart(
|
||||
new Oss\Models\UploadPartRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
$i,
|
||||
$initResult->uploadId,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
Oss\Utils::streamFor($chunk)
|
||||
)
|
||||
);
|
||||
$this->assertEquals(200, $partResult->statusCode);
|
||||
$part = new Oss\Models\UploadPart(
|
||||
$i,
|
||||
$partResult->etag,
|
||||
);
|
||||
array_push($parts, $part);
|
||||
$i++;
|
||||
}
|
||||
fclose($file);
|
||||
}
|
||||
|
||||
$paginator = new Oss\Paginator\ListPartsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListPartsRequest($bucketName, $key, $initResult->uploadId),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
$resultParts = [];
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->parts ?? [] as $part) {
|
||||
$resultParts[] = $part;
|
||||
}
|
||||
}
|
||||
$this->assertEquals(count($parts), count($resultParts));
|
||||
}
|
||||
|
||||
public function testListPartsPaginatorAsyncFail()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName . '-not-exist';
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListPartsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListPartsRequest($bucketName, "not-exist", "not-exist"),
|
||||
['limit' => 1]
|
||||
);
|
||||
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->parts ?? [] as $part) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListParts', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('NoSuchBucket', $se->getErrorCode());
|
||||
$this->assertEquals(404, $se->getStatusCode());
|
||||
$this->assertEquals('The specified bucket does not exist.', $se->getErrorMessage());
|
||||
$this->assertEquals('0015-00000101', $se->getEC());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListBucketsPaginator()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
|
||||
$paginator = new Oss\Paginator\ListBucketsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListBucketsRequest(self::$BUCKETNAME_PREFIX),
|
||||
['limit' => 10]
|
||||
);
|
||||
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->buckets ?? [] as $bucket) {
|
||||
$this->assertStringContainsString(self::$BUCKETNAME_PREFIX, $bucket->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListBucketsPaginatorFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListBucketsPaginator($client);
|
||||
$iter = $paginator->iterPage(
|
||||
new Oss\Models\ListBucketsRequest(self::$BUCKETNAME_PREFIX),
|
||||
['limit' => 10]
|
||||
);
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->buckets ?? [] as $bucket) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListBuckets', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals('The OSS Access Key Id you provided does not exist in our records.', $se->getErrorMessage());
|
||||
$this->assertEquals('0002-00000902', $se->getEC());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testListBucketsPaginatorAsync()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
|
||||
$paginator = new Oss\Paginator\ListBucketsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListBucketsRequest(self::$BUCKETNAME_PREFIX),
|
||||
['limit' => 10]
|
||||
);
|
||||
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->buckets ?? [] as $bucket) {
|
||||
$this->assertStringContainsString(self::$BUCKETNAME_PREFIX, $bucket->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function testListBucketsPaginatorAsyncFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
try {
|
||||
$paginator = new Oss\Paginator\ListBucketsPaginator($client);
|
||||
$iterPromise = $paginator->iterPageAsync(
|
||||
new Oss\Models\ListBucketsRequest(self::$BUCKETNAME_PREFIX),
|
||||
['limit' => 10]
|
||||
);
|
||||
|
||||
foreach ($iterPromise as $pagePromise) {
|
||||
$page = $pagePromise->wait();
|
||||
foreach ($page->buckets ?? [] as $bucket) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error ListBuckets', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals('The OSS Access Key Id you provided does not exist in our records.', $se->getErrorMessage());
|
||||
$this->assertEquals('0002-00000902', $se->getEC());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
507
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientPresignerTest.php
vendored
Normal file
507
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientPresignerTest.php
vendored
Normal file
@@ -0,0 +1,507 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2\Client;
|
||||
use AlibabaCloud\Oss\V2\Models\CompleteMultipartUpload;
|
||||
use AlibabaCloud\Oss\V2\Transform\Functions;
|
||||
use AlibabaCloud\Oss\V2\Utils;
|
||||
use DateInterval;
|
||||
use GuzzleHttp;
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
|
||||
class ClientPresignerTest extends TestIntegration
|
||||
{
|
||||
public function testGetObject()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
$key = 'key-123+-/123%/345';
|
||||
$content = 'hello world';
|
||||
$request = new Oss\Models\PutObjectRequest($bucketName, $key);
|
||||
$request->body = Oss\Utils::streamFor($content);
|
||||
$result = $client->putObject($request);
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $key);
|
||||
$result = $client->presign($request);
|
||||
$uri = GuzzleHttp\Psr7\Utils::uriFor($result->url);
|
||||
$this->assertEquals('/key-123%2B-/123%25/345', $uri->getPath());
|
||||
$query = GuzzleHttp\Psr7\Query::parse($uri->getQuery());
|
||||
$this->assertArrayHasKey('x-oss-credential', $query);
|
||||
$this->assertArrayHasKey('x-oss-date', $query);
|
||||
$this->assertArrayHasKey('x-oss-expires', $query);
|
||||
$this->assertEquals('900', $query['x-oss-expires']);
|
||||
$this->assertArrayHasKey('x-oss-signature', $query);
|
||||
$this->assertArrayHasKey('x-oss-signature-version', $query);
|
||||
$this->assertEquals('OSS4-HMAC-SHA256', $query['x-oss-signature-version']);
|
||||
|
||||
$httpClient = new GuzzleHttp\Client();
|
||||
$response = $httpClient->get($result->url);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals($content, $response->getBody()->getContents());
|
||||
}
|
||||
|
||||
public function testPresign()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$objectName = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-put-object';
|
||||
$body = 'hi oss';
|
||||
$httpClient = new GuzzleHttp\Client();
|
||||
// PutObjRequest
|
||||
try {
|
||||
$request = new Oss\Models\PutObjectRequest($bucketName, $objectName);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $body]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
print_r($e->getMessage());
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
// GetObjRequest
|
||||
try {
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $objectName);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals($body, $response->getBody()->getContents());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
// HeadObjRequest
|
||||
try {
|
||||
$request = new Oss\Models\HeadObjectRequest($bucketName, $objectName);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals(strlen($body), $response->getHeaderLine('content-length'));
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
// UploadPart
|
||||
$objectNameMultipart = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-multi-part';
|
||||
try {
|
||||
$request = new Oss\Models\InitiateMultipartUploadRequest($bucketName, $objectNameMultipart);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
$body = $response->getBody()->getContents();
|
||||
$xml = Utils::parseXml($body);
|
||||
$uploadId = Functions::tryToString($xml->UploadId);
|
||||
try {
|
||||
$partRequest = new Oss\Models\UploadPartRequest($bucketName, $objectNameMultipart);
|
||||
$partRequest->partNumber = 1;
|
||||
$partRequest->uploadId = $uploadId;
|
||||
$result = $client->presign($partRequest);
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $body, ['headers' => $result->signedHeaders]]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
print_r($e->getMessage());
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
try {
|
||||
$request = new Oss\Models\CompleteMultipartUploadRequest($bucketName, $objectNameMultipart);
|
||||
$request->completeMultipartUpload = new CompleteMultipartUpload(
|
||||
[new Oss\Models\UploadPart(
|
||||
$partRequest->partNumber, $response->getHeaderLine('ETag')
|
||||
)]
|
||||
);
|
||||
$request->uploadId = $uploadId;
|
||||
$result = $client->presign($request);
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><CompleteMultipartUpload></CompleteMultipartUpload>');
|
||||
if (isset($request->completeMultipartUpload->parts)) {
|
||||
foreach ($request->completeMultipartUpload->parts as $part) {
|
||||
$xmlPart = $xml->addChild('Part');
|
||||
$xmlPart->addChild('PartNumber', strval($part->partNumber));
|
||||
$xmlPart->addChild('ETag', $part->etag);
|
||||
}
|
||||
}
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $xml->asXML(), 'headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$headRequest = new Oss\Models\HeadObjectRequest($bucketName, $objectNameMultipart);
|
||||
$headResult = $client->headObject($headRequest);
|
||||
$this->assertEquals(200, $headResult->statusCode);
|
||||
$this->assertEquals(strlen($body), $headResult->contentLength);
|
||||
$this->assertEquals('Multipart', $headResult->objectType);
|
||||
} catch (\Throwable $e) {
|
||||
print_r($e->getMessage());
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
$objectNameMultipartCopy = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-multi-part-copy';
|
||||
|
||||
try {
|
||||
$initRequest = new Oss\Models\InitiateMultipartUploadRequest($bucketName, $objectNameMultipartCopy);
|
||||
$initResult = $client->presign($initRequest);
|
||||
$response = $httpClient->request($initResult->method, $initResult->url, ['headers' => $initResult->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$body = $response->getBody()->getContents();
|
||||
$xml = Utils::parseXml($body);
|
||||
$uploadId = Functions::tryToString($xml->UploadId);
|
||||
|
||||
$abortRequest = new Oss\Models\AbortMultipartUploadRequest($bucketName, $objectNameMultipartCopy, $uploadId);
|
||||
$result = $client->presign($abortRequest);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(204, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testPresignExtra()
|
||||
{
|
||||
$bucketName = self::$bucketName;
|
||||
$objectName = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-put-object';
|
||||
$body = 'hi oss';
|
||||
$httpClient = new GuzzleHttp\Client();
|
||||
$cfg = Oss\Config::loadDefault();
|
||||
$cfg->setCredentialsProvider(new Oss\Credentials\StaticCredentialsProvider(
|
||||
self::$ACCESS_ID,
|
||||
self::$ACCESS_KEY
|
||||
));
|
||||
$cfg->setRegion(self::$REGION);
|
||||
$cfg->setEndpoint(self::$ENDPOINT);
|
||||
$cfg->setSignatureVersion('v1');
|
||||
$cfg->setAdditionalHeaders(['email', 'name']);
|
||||
$clientV1 = new Client($cfg);
|
||||
$cfg->setSignatureVersion('v4');
|
||||
$clientV4 = new Client($cfg);
|
||||
|
||||
$putObjRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName,
|
||||
$objectName,
|
||||
);
|
||||
$putObjRequest->body = Utils::streamFor($body);
|
||||
$putObjResult = $clientV1->putObject($putObjRequest);
|
||||
$this->assertEquals(200, $putObjResult->statusCode);
|
||||
$this->assertEquals('OK', $putObjResult->status);
|
||||
|
||||
|
||||
// GetObjRequest
|
||||
try {
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $objectName, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ['headers' => ['email' => 'demo@aliyun.com']]);
|
||||
$options['expiration'] = (new \DateTime('now', new \DateTimeZone('UTC')))->add(new DateInterval('PT1M'));
|
||||
$result = $clientV1->presign($request, $options);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals($body, $response->getBody()->getContents());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
try {
|
||||
$options = null;
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $objectName, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ['headers' => ['email' => 'demo@aliyun.com']]);
|
||||
$options['expiration'] = (new \DateTime('now', new \DateTimeZone('UTC')))->modify('-10 second');
|
||||
$result = $clientV1->presign($request, $options);
|
||||
$response = $httpClient->request($result->method, $result->url);
|
||||
$this->assertTrue(false, 'should not here');
|
||||
} catch (\Throwable $e) {
|
||||
//$this->assertEquals(403, $e->getMessage());
|
||||
$this->assertStringContainsString("403 Forbidden", $e->getMessage());
|
||||
$this->assertStringContainsString("Request has expired.", $e->getMessage());
|
||||
$this->assertInstanceOf(GuzzleHttp\Exception\ClientException::class, $e);
|
||||
}
|
||||
|
||||
try {
|
||||
$options = null;
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $objectName);
|
||||
$options['expiration'] = (new \DateTime('now', new \DateTimeZone('UTC')))->add(new DateInterval('PT192H'));
|
||||
$result = $clientV4->presign($request, $options);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => $result->signedHeaders]);
|
||||
$this->assertTrue(false, 'should not here');
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertStringContainsString('Expires should not be greater than 604800 (seven days)', $e->getMessage());
|
||||
}
|
||||
|
||||
$options = null;
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $objectName, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ['headers' => ['email' => 'demo@aliyun.com']]);
|
||||
$options['expires'] = new DateInterval('PT1H');
|
||||
$result = $clientV4->presign($request, $options);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => ['email' => 'demo@aliyun.com']]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
public function testPresignWithStsToken()
|
||||
{
|
||||
$client = $this->getClientUseStsToken();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$objectName = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-put-object';
|
||||
$body = 'hi oss';
|
||||
$httpClient = new GuzzleHttp\Client();
|
||||
// PutObjRequest
|
||||
try {
|
||||
$request = new Oss\Models\PutObjectRequest($bucketName, $objectName);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $body]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
print_r($e->getMessage());
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
// GetObjRequest
|
||||
try {
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $objectName);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals($body, $response->getBody()->getContents());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
// HeadObjRequest
|
||||
try {
|
||||
$request = new Oss\Models\HeadObjectRequest($bucketName, $objectName);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals(strlen($body), $response->getHeaderLine('content-length'));
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
// UploadPart
|
||||
$objectNameMultipart = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-multi-part';
|
||||
try {
|
||||
$request = new Oss\Models\InitiateMultipartUploadRequest($bucketName, $objectNameMultipart);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
$body = $response->getBody()->getContents();
|
||||
$xml = Utils::parseXml($body);
|
||||
$uploadId = Functions::tryToString($xml->UploadId);
|
||||
try {
|
||||
$partRequest = new Oss\Models\UploadPartRequest($bucketName, $objectNameMultipart);
|
||||
$partRequest->partNumber = 1;
|
||||
$partRequest->uploadId = $uploadId;
|
||||
$result = $client->presign($partRequest);
|
||||
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $body, ['headers' => $result->signedHeaders]]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
try {
|
||||
$request = new Oss\Models\CompleteMultipartUploadRequest($bucketName, $objectNameMultipart);
|
||||
$request->completeMultipartUpload = new CompleteMultipartUpload(
|
||||
[new Oss\Models\UploadPart(
|
||||
$partRequest->partNumber, $response->getHeaderLine('ETag')
|
||||
)]
|
||||
);
|
||||
$request->uploadId = $uploadId;
|
||||
$result = $client->presign($request);
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><CompleteMultipartUpload></CompleteMultipartUpload>');
|
||||
if (isset($request->completeMultipartUpload->parts)) {
|
||||
foreach ($request->completeMultipartUpload->parts as $part) {
|
||||
$xmlPart = $xml->addChild('Part');
|
||||
$xmlPart->addChild('PartNumber', strval($part->partNumber));
|
||||
$xmlPart->addChild('ETag', $part->etag);
|
||||
}
|
||||
}
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $xml->asXML(), 'headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$headRequest = new Oss\Models\HeadObjectRequest($bucketName, $objectNameMultipart);
|
||||
$headResult = $client->headObject($headRequest);
|
||||
$this->assertEquals(200, $headResult->statusCode);
|
||||
$this->assertEquals(strlen($body), $headResult->contentLength);
|
||||
$this->assertEquals('Multipart', $headResult->objectType);
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
$objectNameMultipartCopy = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-multi-part-copy';
|
||||
|
||||
try {
|
||||
$initRequest = new Oss\Models\InitiateMultipartUploadRequest($bucketName, $objectNameMultipartCopy);
|
||||
$initResult = $client->presign($initRequest);
|
||||
$response = $httpClient->request($initResult->method, $initResult->url, ['headers' => $initResult->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$body = $response->getBody()->getContents();
|
||||
$xml = Utils::parseXml($body);
|
||||
$uploadId = Functions::tryToString($xml->UploadId);
|
||||
|
||||
$abortRequest = new Oss\Models\AbortMultipartUploadRequest($bucketName, $objectNameMultipartCopy, $uploadId);
|
||||
$result = $client->presign($abortRequest);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(204, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testPresignError()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
try {
|
||||
$request = new Oss\Models\ListObjectsRequest($bucketName);
|
||||
$result = $client->presign($request);
|
||||
$this->assertTrue(false, 'should not here');
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertStringContainsString("Invalid request type: AlibabaCloud\Oss\V2\Models\ListObjectsRequest", $e);
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $client->presign(null);
|
||||
$this->assertTrue(false, 'should not here');
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertStringContainsString("is not subclass of RequestModel, got NULL", $e);
|
||||
}
|
||||
}
|
||||
|
||||
public function testPresignWithContentType()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName;
|
||||
|
||||
$objectName = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-put-object.zip';
|
||||
$body = 'hi oss';
|
||||
$httpClient = new GuzzleHttp\Client();
|
||||
// PutObjRequest
|
||||
try {
|
||||
$request = new Oss\Models\PutObjectRequest($bucketName, $objectName);
|
||||
$result = $client->presign($request);
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $body]);
|
||||
$this->assertCount(0, $result->signedHeaders);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
print_r($e->getMessage());
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
// UploadPart
|
||||
$objectNameMultipart = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-multi-part.zip';
|
||||
try {
|
||||
$request = new Oss\Models\InitiateMultipartUploadRequest($bucketName, $objectNameMultipart);
|
||||
$result = $client->presign($request);
|
||||
$this->assertCount(1, $result->signedHeaders);
|
||||
$this->assertArrayHasKey('content-md5', $result->signedHeaders);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
$body = $response->getBody()->getContents();
|
||||
$xml = Utils::parseXml($body);
|
||||
$uploadId = Functions::tryToString($xml->UploadId);
|
||||
try {
|
||||
$partRequest = new Oss\Models\UploadPartRequest($bucketName, $objectNameMultipart);
|
||||
$partRequest->partNumber = 1;
|
||||
$partRequest->uploadId = $uploadId;
|
||||
$result = $client->presign($partRequest);
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $body, ['headers' => $result->signedHeaders]]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
print_r($e->getMessage());
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
try {
|
||||
$request = new Oss\Models\CompleteMultipartUploadRequest($bucketName, $objectNameMultipart);
|
||||
$request->completeMultipartUpload = new CompleteMultipartUpload(
|
||||
[new Oss\Models\UploadPart(
|
||||
$partRequest->partNumber, $response->getHeaderLine('ETag')
|
||||
)]
|
||||
);
|
||||
$request->uploadId = $uploadId;
|
||||
$result = $client->presign($request);
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><CompleteMultipartUpload></CompleteMultipartUpload>');
|
||||
if (isset($request->completeMultipartUpload->parts)) {
|
||||
foreach ($request->completeMultipartUpload->parts as $part) {
|
||||
$xmlPart = $xml->addChild('Part');
|
||||
$xmlPart->addChild('PartNumber', strval($part->partNumber));
|
||||
$xmlPart->addChild('ETag', $part->etag);
|
||||
}
|
||||
}
|
||||
$response = $httpClient->request($result->method, $result->url, ['body' => $xml->asXML(), 'headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$headRequest = new Oss\Models\HeadObjectRequest($bucketName, $objectNameMultipart);
|
||||
$headResult = $client->headObject($headRequest);
|
||||
$this->assertEquals(200, $headResult->statusCode);
|
||||
$this->assertEquals(strlen($body), $headResult->contentLength);
|
||||
$this->assertEquals('Multipart', $headResult->objectType);
|
||||
} catch (\Throwable $e) {
|
||||
print_r($e->getMessage());
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
|
||||
$objectNameMultipartCopy = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-multi-part-copy';
|
||||
|
||||
try {
|
||||
$initRequest = new Oss\Models\InitiateMultipartUploadRequest($bucketName, $objectNameMultipartCopy);
|
||||
$initResult = $client->presign($initRequest);
|
||||
$response = $httpClient->request($initResult->method, $initResult->url, ['headers' => $initResult->signedHeaders]);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$body = $response->getBody()->getContents();
|
||||
$xml = Utils::parseXml($body);
|
||||
$uploadId = Functions::tryToString($xml->UploadId);
|
||||
|
||||
$abortRequest = new Oss\Models\AbortMultipartUploadRequest($bucketName, $objectNameMultipartCopy, $uploadId);
|
||||
$result = $client->presign($abortRequest);
|
||||
$response = $httpClient->request($result->method, $result->url, ['headers' => $result->signedHeaders]);
|
||||
$this->assertEquals(204, $response->getStatusCode());
|
||||
} catch (\Throwable $e) {
|
||||
$this->assertTrue(false, 'should not here');
|
||||
}
|
||||
}
|
||||
|
||||
public function testPresignWithAnonymous()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
$bucketName = self::$bucketName.'-pub';
|
||||
$objectName = self::$OBJECTNAME_PREFIX . self::randomLowStr() . '-put-object';
|
||||
|
||||
$client->putBucket(new Oss\Models\PutBucketRequest($bucketName));
|
||||
$client->putBucketPublicAccessBlock(new Oss\Models\PutBucketPublicAccessBlockRequest(
|
||||
$bucketName,
|
||||
new Oss\Models\PublicAccessBlockConfiguration(
|
||||
false
|
||||
)
|
||||
));
|
||||
|
||||
$content = 'hi oss';
|
||||
$putObjectRequest = new Oss\Models\PutObjectRequest(
|
||||
$bucketName, $objectName
|
||||
);
|
||||
$putObjectRequest->acl = 'public-read';
|
||||
$putObjectRequest->body = Utils::streamFor($content);
|
||||
$client->putObject($putObjectRequest);
|
||||
|
||||
$request = new Oss\Models\GetObjectRequest($bucketName, $objectName);
|
||||
$options['credentials_provider'] = new Oss\Credentials\AnonymousCredentialsProvider();
|
||||
$result = $client->presign($request, $options);
|
||||
$this->assertNotEmpty($result->url);
|
||||
$this->assertNotEmpty($result->method);
|
||||
$this->assertStringNotContainsString('?', $result->url);
|
||||
$httpClient = new GuzzleHttp\Client();
|
||||
$response = $httpClient->get($result->url);
|
||||
$this->assertEquals($response->getStatusCode(), 200);
|
||||
$this->assertEquals($response->getBody()->getContents(), $content);
|
||||
}
|
||||
}
|
||||
88
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientPublicAccessBlockTest.php
vendored
Normal file
88
vendor/alibabacloud/oss-v2/tests/IntegrationTests/ClientPublicAccessBlockTest.php
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestIntegration.php';
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class ClientPublicAccessBlockTest extends TestIntegration
|
||||
{
|
||||
public function testPublicAccessBlock()
|
||||
{
|
||||
$client = $this->getDefaultClient();
|
||||
// PutPublicAccessBlock
|
||||
$putResult = $client->putPublicAccessBlock(new Oss\Models\PutPublicAccessBlockRequest(
|
||||
new Oss\Models\PublicAccessBlockConfiguration(true)
|
||||
));
|
||||
$this->assertEquals(200, $putResult->statusCode);
|
||||
$this->assertEquals('OK', $putResult->status);
|
||||
$this->assertEquals(True, count($putResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($putResult->requestId));
|
||||
|
||||
// GetPublicAccessBlock
|
||||
$getResult = $client->getPublicAccessBlock(new Oss\Models\GetPublicAccessBlockRequest());
|
||||
$this->assertEquals(200, $getResult->statusCode);
|
||||
$this->assertEquals('OK', $getResult->status);
|
||||
$this->assertEquals(True, count($getResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($getResult->requestId));
|
||||
|
||||
// DeletePublicAccessBlock
|
||||
$delResult = $client->deletePublicAccessBlock(new Oss\Models\DeletePublicAccessBlockRequest());
|
||||
$this->assertEquals(204, $delResult->statusCode);
|
||||
$this->assertEquals('No Content', $delResult->status);
|
||||
$this->assertEquals(True, count($delResult->headers) > 0);
|
||||
$this->assertEquals(24, strlen($delResult->requestId));
|
||||
}
|
||||
|
||||
public function testPublicAccessBlockFail()
|
||||
{
|
||||
$client = $this->getInvalidAkClient();
|
||||
// PutPublicAccessBlock
|
||||
try {
|
||||
$putResult = $client->putPublicAccessBlock(new Oss\Models\PutPublicAccessBlockRequest(
|
||||
new Oss\Models\PublicAccessBlockConfiguration(true)
|
||||
));
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error PutPublicAccessBlock', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// GetPublicAccessBlock
|
||||
try {
|
||||
$getResult = $client->getPublicAccessBlock(new Oss\Models\GetPublicAccessBlockRequest());
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error GetPublicAccessBlock', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
|
||||
// DeletePublicAccessBlock
|
||||
try {
|
||||
$delResult = $client->deletePublicAccessBlock(new Oss\Models\DeletePublicAccessBlockRequest());
|
||||
$this->assertTrue(false, "should not here");
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$this->assertStringContainsString('Operation error DeletePublicAccessBlock', $e);
|
||||
$se = $e->getPrevious();
|
||||
$this->assertInstanceOf(Oss\Exception\ServiceException::class, $se);
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
$this->assertEquals('InvalidAccessKeyId', $se->getErrorCode());
|
||||
$this->assertEquals(403, $se->getStatusCode());
|
||||
$this->assertEquals(24, strlen($se->getRequestId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1045
vendor/alibabacloud/oss-v2/tests/IntegrationTests/EncryptionClientTest.php
vendored
Normal file
1045
vendor/alibabacloud/oss-v2/tests/IntegrationTests/EncryptionClientTest.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
402
vendor/alibabacloud/oss-v2/tests/IntegrationTests/TestIntegration.php
vendored
Normal file
402
vendor/alibabacloud/oss-v2/tests/IntegrationTests/TestIntegration.php
vendored
Normal file
@@ -0,0 +1,402 @@
|
||||
<?php
|
||||
|
||||
namespace IntegrationTests;
|
||||
|
||||
use AlibabaCloud\Oss\V2 as Oss;
|
||||
|
||||
class TestIntegration extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
static $ACCESS_ID;
|
||||
static $ACCESS_KEY;
|
||||
static $ENDPOINT;
|
||||
static $REGION;
|
||||
static $RAM_ROLE_ARN;
|
||||
static $USER_ID;
|
||||
|
||||
static $PAYER_ACCESS_ID;
|
||||
static $PAYER_ACCESS_KEY;
|
||||
static $PAYER_UID;
|
||||
|
||||
public static $BUCKETNAME_PREFIX = "php-sdk-test-bucket-";
|
||||
public static $OBJECTNAME_PREFIX = "php-sdk-test-object-";
|
||||
|
||||
static ?Oss\Client $defaultClient = null;
|
||||
static ?Oss\Client $invalidAkClient = null;
|
||||
static ?Oss\Client $signV1Client = null;
|
||||
|
||||
static ?string $tempDir;
|
||||
|
||||
static ?string $bucketName = null;
|
||||
|
||||
public static function setUpBeforeClass(): void
|
||||
{
|
||||
self::$ACCESS_ID = getenv("OSS_TEST_ACCESS_KEY_ID");
|
||||
self::$ACCESS_KEY = getenv("OSS_TEST_ACCESS_KEY_SECRET");
|
||||
self::$ENDPOINT = getenv("OSS_TEST_ENDPOINT");
|
||||
self::$REGION = getenv("OSS_TEST_REGION") ?? 'cn-hangzhou';
|
||||
self::$RAM_ROLE_ARN = getenv("OSS_TEST_RAM_ROLE_ARN");
|
||||
self::$USER_ID = getenv("OSS_TEST_USER_ID");
|
||||
|
||||
self::$PAYER_ACCESS_ID = getenv("OSS_TEST_PAYER_ACCESS_KEY_ID");
|
||||
self::$PAYER_ACCESS_KEY = getenv("OSS_TEST_PAYER_ACCESS_KEY_SECRET");
|
||||
self::$PAYER_UID = getenv("OSS_TEST_PAYER_UID");
|
||||
|
||||
$client = self::getDefaultClient();
|
||||
$bucketName = self::randomBucketName();
|
||||
self::$bucketName = $bucketName;
|
||||
|
||||
self::$tempDir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'oss-php-sdk-test-' . strval(time());
|
||||
mkdir(self::$tempDir);
|
||||
|
||||
$client->putBucket(new Oss\Models\PutBucketRequest($bucketName));
|
||||
}
|
||||
|
||||
public static function tearDownAfterClass(): void
|
||||
{
|
||||
//clean access points
|
||||
if (version_compare(PHP_VERSION, '8.0.0', '>=')) {
|
||||
self::deleteAccessPoint(self::getDefaultClient(), self::$bucketName);
|
||||
}
|
||||
|
||||
//clean buckets
|
||||
self::cleanBucket(self::getDefaultClient(), self::$bucketName);
|
||||
|
||||
//clean temp dir
|
||||
self::deleteDir(self::$tempDir);
|
||||
}
|
||||
|
||||
static function getDefaultClient()
|
||||
{
|
||||
if (self::$defaultClient != null) {
|
||||
return self::$defaultClient;
|
||||
}
|
||||
|
||||
$cfg = Oss\Config::loadDefault();
|
||||
$cfg->setCredentialsProvider(new Oss\Credentials\StaticCredentialsProvider(
|
||||
self::$ACCESS_ID,
|
||||
self::$ACCESS_KEY
|
||||
));
|
||||
$cfg->setRegion(self::$REGION);
|
||||
$cfg->setEndpoint(self::$ENDPOINT);
|
||||
self::$defaultClient = new Oss\Client($cfg);
|
||||
return self::$defaultClient;
|
||||
}
|
||||
|
||||
static function getClient(string $ak, $sk, $region, $endpoint)
|
||||
{
|
||||
$cfg = Oss\Config::loadDefault();
|
||||
$cfg->setCredentialsProvider(new Oss\Credentials\StaticCredentialsProvider(
|
||||
$ak,
|
||||
$sk
|
||||
));
|
||||
$cfg->setRegion($region);
|
||||
if (!empty($endpoint)) {
|
||||
$cfg->setEndpoint($endpoint);
|
||||
}
|
||||
return new Oss\Client($cfg);
|
||||
}
|
||||
|
||||
static function getInvalidAkClient()
|
||||
{
|
||||
if (self::$invalidAkClient != null) {
|
||||
return self::$invalidAkClient;
|
||||
}
|
||||
|
||||
$cfg = Oss\Config::loadDefault();
|
||||
$cfg->setCredentialsProvider(new Oss\Credentials\StaticCredentialsProvider(
|
||||
'invalid-ak',
|
||||
'invalid'
|
||||
));
|
||||
$cfg->setRegion(self::$REGION);
|
||||
$cfg->setEndpoint(self::$ENDPOINT);
|
||||
self::$invalidAkClient = new Oss\Client($cfg);
|
||||
return self::$invalidAkClient;
|
||||
}
|
||||
|
||||
public static function getTempFileName()
|
||||
{
|
||||
return tempnam(self::$tempDir, 'test');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Oss\Client|null
|
||||
* @throws \Throwable
|
||||
*/
|
||||
public function getClientUseStsToken()
|
||||
{
|
||||
try {
|
||||
$resp = $this->stsAssumeRole(self::$ACCESS_ID, self::$ACCESS_KEY, self::$RAM_ROLE_ARN);
|
||||
$accessKeyId = $resp['Credentials']['AccessKeyId'];
|
||||
$accessKeySecret = $resp['Credentials']['AccessKeySecret'];
|
||||
$token = $resp['Credentials']['SecurityToken'];
|
||||
$cfg = Oss\Config::loadDefault();
|
||||
$cfg->setCredentialsProvider(new Oss\Credentials\StaticCredentialsProvider(
|
||||
$accessKeyId,
|
||||
$accessKeySecret,
|
||||
$token
|
||||
));
|
||||
$cfg->setRegion(self::$REGION);
|
||||
$cfg->setEndpoint(self::$ENDPOINT);
|
||||
return new Oss\Client($cfg);
|
||||
} catch (\Throwable $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
private function stsAssumeRole($accessKeyId, $accessKeySecret, $roleArn)
|
||||
{
|
||||
// Constants
|
||||
$StsSignVersion = "1.0";
|
||||
$StsAPIVersion = "2015-04-01";
|
||||
$StsHost = "https://sts.aliyuncs.com/";
|
||||
$TimeFormat = "Y-m-d\TH:i:s\Z";
|
||||
$RespBodyFormat = "JSON";
|
||||
$PercentEncode = "%2F";
|
||||
$HTTPGet = "GET";
|
||||
$uuid = "Nonce-" . rand(1000, 9999);
|
||||
$currentTime = (new \DateTime('now', new \DateTimeZone('UTC')))->format($TimeFormat);
|
||||
$queryStr = http_build_query([
|
||||
"SignatureVersion" => $StsSignVersion,
|
||||
"Format" => $RespBodyFormat,
|
||||
"Timestamp" => $currentTime,
|
||||
"RoleArn" => $roleArn,
|
||||
"RoleSessionName" => "oss_test_sess",
|
||||
"AccessKeyId" => $accessKeyId,
|
||||
"SignatureMethod" => "HMAC-SHA1",
|
||||
"Version" => $StsAPIVersion,
|
||||
"Action" => "AssumeRole",
|
||||
"SignatureNonce" => $uuid,
|
||||
"DurationSeconds" => 3600
|
||||
]);
|
||||
parse_str($queryStr, $queryParams);
|
||||
ksort($queryParams);
|
||||
$queryStr = http_build_query($queryParams);
|
||||
$strToSign = $HTTPGet . "&" . $PercentEncode . "&" . rawurlencode($queryStr);
|
||||
$signature = base64_encode(hash_hmac('sha1', $strToSign, $accessKeySecret . "&", true));
|
||||
$assumeURL = $StsHost . "?" . $queryStr . "&Signature=" . urlencode($signature);
|
||||
$httpClient = new \GuzzleHttp\Client();
|
||||
try {
|
||||
$resp = $httpClient->get($assumeURL);
|
||||
$result = json_decode($resp->getBody()->getContents(), true);
|
||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
throw new \Exception("Failed to decode JSON response");
|
||||
}
|
||||
return $result;
|
||||
} catch (\Throwable $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public static function randomBucketName()
|
||||
{
|
||||
return self::$BUCKETNAME_PREFIX . strval(rand(0, 100)) . '-' . strval(time());
|
||||
}
|
||||
|
||||
public static function randomObjectName()
|
||||
{
|
||||
return self::$OBJECTNAME_PREFIX . strval(rand(0, 100)) . '-' . strval(time());
|
||||
}
|
||||
|
||||
public static function randomLowStr()
|
||||
{
|
||||
self::$BUCKETNAME_PREFIX . strval(rand(0, 100)) . '-' . strval(time());
|
||||
}
|
||||
|
||||
public static function randomStr()
|
||||
{
|
||||
self::$BUCKETNAME_PREFIX . strval(rand(0, 100)) . '-' . strval(time());
|
||||
}
|
||||
|
||||
public static function waitFor(float $sec)
|
||||
{
|
||||
usleep((int)($sec * 1000000));
|
||||
}
|
||||
|
||||
public static function cleanBucket(Oss\Client $client, string $bucketName): void
|
||||
{
|
||||
//delete Objects
|
||||
$paginator = new Oss\Paginator\ListObjectsPaginator($client);
|
||||
$iter = $paginator->iterPage(new Oss\Models\ListObjectsRequest($bucketName));
|
||||
foreach ($iter as $page) {
|
||||
$objects = [];
|
||||
foreach ($page->contents ?? [] as $content) {
|
||||
$objects[] = new Oss\Models\DeleteObject($content->key);
|
||||
}
|
||||
if (!empty($objects)) {
|
||||
$client->deleteMultipleObjects(new Oss\Models\DeleteMultipleObjectsRequest(
|
||||
$bucketName,
|
||||
$objects
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
//delete uploadpart
|
||||
$paginator = new Oss\Paginator\ListMultipartUploadsPaginator($client);
|
||||
$iter = $paginator->iterPage(new Oss\Models\ListMultipartUploadsRequest($bucketName));
|
||||
foreach ($iter as $page) {
|
||||
foreach ($page->uploads ?? [] as $upload) {
|
||||
$client->abortMultipartUpload(new Oss\Models\AbortMultipartUploadRequest(
|
||||
$bucketName,
|
||||
$upload->key,
|
||||
$upload->uploadId
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
$client->deleteBucket(new Oss\Models\DeleteBucketRequest($bucketName));
|
||||
}
|
||||
|
||||
public static function deleteDir(string $dir): void
|
||||
{
|
||||
if (!is_dir($dir)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($handle = opendir($dir)) {
|
||||
while (($entry = readdir($handle)) !== false) {
|
||||
if ($entry == '.' || $entry == '..') {
|
||||
continue;
|
||||
}
|
||||
$file = $dir . DIRECTORY_SEPARATOR . $entry;
|
||||
|
||||
if (is_dir($file)) {
|
||||
self::deleteDir($file);
|
||||
} else {
|
||||
unlink($file);
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
}
|
||||
|
||||
rmdir($dir);
|
||||
}
|
||||
|
||||
public static function getDataPath(): string
|
||||
{
|
||||
return dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'Data';
|
||||
}
|
||||
|
||||
public static function deleteAccessPoint(Oss\Client $client, string $bucketName): void
|
||||
{
|
||||
$listRequest = new Oss\Models\ListAccessPointsRequest();
|
||||
$listRequest->bucket = $bucketName;
|
||||
while (true) {
|
||||
$listResult = $client->listAccessPoints($listRequest);
|
||||
if (isset($listResult->listAccessPoints->accessPoints->accessPoints) && count($listResult->listAccessPoints->accessPoints->accessPoints) > 0) {
|
||||
foreach ($listResult->listAccessPoints->accessPoints->accessPoints as $accessPoint) {
|
||||
switch ($accessPoint->status) {
|
||||
case 'creating':
|
||||
sleep(3);
|
||||
while (true) {
|
||||
$getResult = $client->getAccessPoint(new Oss\Models\GetAccessPointRequest(
|
||||
$bucketName, $accessPoint->accessPointName
|
||||
));
|
||||
if ($getResult->getAccessPoint->status != 'creating') {
|
||||
break;
|
||||
} else {
|
||||
sleep(3);
|
||||
}
|
||||
}
|
||||
$client->deleteAccessPoint(new Oss\Models\DeleteAccessPointRequest(
|
||||
$bucketName, $accessPoint->accessPointName
|
||||
));
|
||||
break;
|
||||
case 'deleting':
|
||||
sleep(5);
|
||||
break;
|
||||
default:
|
||||
$client->deleteAccessPoint(new Oss\Models\DeleteAccessPointRequest(
|
||||
$bucketName, $accessPoint->accessPointName
|
||||
));
|
||||
break;
|
||||
}
|
||||
while (true) {
|
||||
try {
|
||||
$client->getAccessPoint(new Oss\Models\GetAccessPointRequest(
|
||||
$bucketName, $accessPoint->accessPointName
|
||||
));
|
||||
} catch (Oss\Exception\OperationException $e) {
|
||||
$se = $e->getPrevious();
|
||||
if ($se instanceof Oss\Exception\ServiceException) {
|
||||
if ($se->getErrorCode() == 'NoSuchAccessPoint' && $se->getStatusCode() == 404) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
sleep(3);
|
||||
}
|
||||
|
||||
}
|
||||
if ($listResult->listAccessPoints->isTruncated == false) {
|
||||
break;
|
||||
}
|
||||
if ($listResult->listAccessPoints->nextContinuationToken != "") {
|
||||
$listRequest->continuationToken = $listResult->listAccessPoints->nextContinuationToken;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $filename
|
||||
* @param $size
|
||||
*/
|
||||
public function generateFile($filename, $size)
|
||||
{
|
||||
if (
|
||||
file_exists($filename) &&
|
||||
$size == sprintf('%u', filesize($filename))
|
||||
) {
|
||||
return;
|
||||
}
|
||||
$part_size = 32;
|
||||
$fp = fopen($filename, "w");
|
||||
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
|
||||
$charactersLength = strlen($characters);
|
||||
if ($fp) {
|
||||
while ($size > 0) {
|
||||
if ($size < $part_size) {
|
||||
$write_size = $size;
|
||||
} else {
|
||||
$write_size = $part_size;
|
||||
}
|
||||
$size -= $write_size;
|
||||
$a = $characters[rand(0, $charactersLength - 1)];
|
||||
$content = str_repeat($a, $write_size);
|
||||
$flag = fwrite($fp, $content);
|
||||
if (!$flag) {
|
||||
$this->assertTrue(false, "write to $filename failed.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->assertTrue(false, "open $filename failed.");
|
||||
}
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
public function object_get_contents($client, $bucket, $key): string
|
||||
{
|
||||
$result = $client->getObject(new Oss\Models\GetObjectRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
return $result->body->getContents();
|
||||
}
|
||||
|
||||
public function object_get_content_type($client, $bucket, $key): string
|
||||
{
|
||||
$result = $client->headObject(new Oss\Models\HeadObjectRequest(
|
||||
self::$bucketName,
|
||||
$key,
|
||||
));
|
||||
$this->assertEquals(200, $result->statusCode);
|
||||
$this->assertEquals('OK', $result->status);
|
||||
return $result->contentType;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user