| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347 |
- <?php
- namespace Qcloud\Cos\Tests;
- use Qcloud\Cos\Client;
- use Qcloud\Cos\Exception\ServiceResponseException;
- class BucketTest extends \PHPUnit_Framework_TestCase
- {
- private $cosClient;
- private $bucket;
- protected function setUp()
- {
- $this->bucket = getenv('COS_BUCKET');
- TestHelper::nuke($this->bucket);
- $this->cosClient = new Client(array('region' => getenv('COS_REGION'),
- 'credentials' => array(
- 'appId' => getenv('COS_APPID'),
- 'secretId' => getenv('COS_KEY'),
- 'secretKey' => getenv('COS_SECRET'))));
- sleep(5);
- }
- protected function tearDown()
- {
- TestHelper::nuke($this->bucket);
- }
- /**********************************
- * TestBucket
- **********************************/
- /*
- * put bucket,bucket已经存在
- * BucketAlreadyOwnedByYou
- * 409
- */
- public function testCreateExistingBucket()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'BucketAlreadyOwnedByYou' && $e->getStatusCode() === 409);
- }
- }
- /*
- * put bucket,bucket名称非法
- * InvalidBucketName
- * 400
- */
- public function testCreateInvalidBucket()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => 'qwe_213'));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'InvalidBucketName' && $e->getStatusCode() === 400);
- }
- }
- /*
- * put bucket,设置bucket公公权限为private
- * 200
- */
- public function testCreatePrivateBucket()
- {
- try {
- $this->cosClient->createBucket(
- array(
- 'Bucket' => $this->bucket,
- 'ACL'=>'private'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket,设置bucket公公权限为public-read
- * 200
- */
- public function testCreatePublicReadBucket()
- {
- try {
- $this->cosClient->createBucket(
- array(
- 'Bucket' => $this->bucket,
- 'ACL'=>'public-read'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket,公共权限非法
- * InvalidArgument
- * 400
- */
- public function testCreateInvalidACLBucket()
- {
- try {
- $this->cosClient->createBucket(
- array(
- 'Bucket' => $this->bucket,
- 'ACL'=>'public'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'InvalidArgument' && $e->getStatusCode() === 400);
- }
- }
- /*
- * put bucket acl,设置bucket公共权限为private
- * 200
- */
- public function testPutBucketAclPrivate()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(
- array(
- 'Bucket' => $this->bucket,
- 'ACL'=>'private'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,设置bucket公共权限为public-read
- * 200
- */
- public function testPutBucketAclPublicRead()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(
- array(
- 'Bucket' => $this->bucket,
- 'ACL'=>'public-read'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,公共权限非法
- * InvalidArgument
- * 400
- */
- public function testPutBucketAclInvalid()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(
- array(
- 'Bucket' => $this->bucket,
- 'ACL'=>'public'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'InvalidArgument' && $e->getStatusCode() === 400);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限为grant-read
- * 200
- */
- public function testPutBucketAclReadToUser()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantRead' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限为grant-write
- * 200
- */
- public function testPutBucketAclWriteToUser()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantWrite' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限为grant-full-control
- * 200
- */
- public function testPutBucketAclFullToUser()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限,同时授权给多个账户
- * 200
- */
- public function testPutBucketAclToUsers()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970",id="qcs::cam::uin/2779643970:uin/2779643970",id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限,授权给子账号
- * 200
- */
- public function testPutBucketAclToSubuser()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限,同时指定read、write和fullcontrol
- * 200
- */
- public function testPutBucketAclReadWriteFull()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantRead' => 'id="qcs::cam::uin/123:uin/123"',
- 'GrantWrite' => 'id="qcs::cam::uin/2779643970:uin/2779643970"',
- 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970"',));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限,grant值非法
- * InvalidArgument
- * 400
- */
- public function testPutBucketAclInvalidGrant()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantFullControl' => 'id="qcs::camuin/321023:uin/2779643970"',));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'InvalidArgument' && $e->getStatusCode() === 400);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限,通过body方式授权
- * 200
- */
- public function testPutBucketAclByBody()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'Grants' => array(
- array(
- 'Grantee' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'Type' => 'CanonicalUser',
- ),
- 'Permission' => 'FULL_CONTROL',
- ),
- // ... repeated
- ),
- 'Owner' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- )));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,设置bucket账号权限,通过body方式授权给anyone
- * 200
- */
- public function testPutBucketAclByBodyToAnyone()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'Grants' => array(
- array(
- 'Grantee' => array(
- 'DisplayName' => 'qcs::cam::anyone:anyone',
- 'ID' => 'qcs::cam::anyone:anyone',
- 'Type' => 'CanonicalUser',
- ),
- 'Permission' => 'FULL_CONTROL',
- ),
- // ... repeated
- ),
- 'Owner' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- )));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket acl,bucket不存在
- * NoSuchBucket
- * 404
- */
- public function testPutBucketAclBucketNonexisted()
- {
- try {
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantFullControl' => 'id="qcs::cam::uin/321023:uin/2779643970"',));
- } catch (ServiceResponseException $e) {
- // echo($e->getExceptionCode());
- // echo($e->getStatusCode());
- $this->assertTrue($e->getExceptionCode() === 'NoSuchBucket' && $e->getStatusCode() === 404);
- }
- }
- /*
- * put bucket acl,覆盖设置
- * x200
- */
- public function testPutBucketAclCover()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970"',
- 'GrantRead' => 'id="qcs::cam::uin/2779643970:uin/2779643970"',
- 'GrantWrite' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- $this->cosClient->PutBucketAcl(array(
- 'Bucket' => $this->bucket,
- 'GrantWrite' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 正常head bucket
- * 200
- */
- public function testHeadBucket()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->HeadBucket(array(
- 'Bucket' => $this->bucket));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * head bucket,bucket不存在
- * NoSuchBucket
- * 404
- */
- public function testHeadBucketNonexisted()
- {
- try {
- $this->cosClient->HeadBucket(array(
- 'Bucket' => $this->bucket,));
- } catch (ServiceResponseException $e) {
- // echo($e->getExceptionCode());
- // echo($e->getStatusCode());
- $this->assertTrue($e->getExceptionCode() === 'NoSuchBucket' && $e->getStatusCode() === 404);
- }
- }
- /*
- * get bucket,bucket为空
- * 200
- */
- public function testGetBucketEmpty()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->ListObjects(array(
- 'Bucket' => $this->bucket));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * get bucket,bucket不存在
- * NoSuchBucket
- * 404
- */
- public function testGetBucketNonexisted()
- {
- try {
- $this->cosClient->ListObjects(array(
- 'Bucket' => $this->bucket,));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'NoSuchBucket' && $e->getStatusCode() === 404);
- }
- }
- /*
- * put bucket cors,cors规则包含多条
- * 200
- */
- public function testPutBucketCors()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putBucketCors(array(
- // Bucket is required
- 'Bucket' => $this->bucket,
- // CORSRules is required
- 'CORSRules' => array(
- array(
- 'ID' => '1234',
- 'AllowedHeaders' => array('*',),
- // AllowedMethods is required
- 'AllowedMethods' => array('PUT',),
- // AllowedOrigins is required
- 'AllowedOrigins' => array('*',),
- 'ExposeHeaders' => array('*',),
- 'MaxAgeSeconds' => 1,
- ),
- array(
- 'ID' => '12345',
- 'AllowedHeaders' => array('*',),
- // AllowedMethods is required
- 'AllowedMethods' => array('PUT',),
- // AllowedOrigins is required
- 'AllowedOrigins' => array('*',),
- 'ExposeHeaders' => array('*',),
- 'MaxAgeSeconds' => 1,
- ),
- // ... repeated
- ),
- ));
- $this->cosClient->getBucketCors(array(
- // Bucket is required
- 'Bucket' => $this->bucket,));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 正常get bucket cors
- * 200
- */
- public function testGetBucketCors()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putBucketCors(array(
- // Bucket is required
- 'Bucket' => $this->bucket,
- // CORSRules is required
- 'CORSRules' => array(
- array(
- 'ID' => '1234',
- 'AllowedHeaders' => array('*',),
- // AllowedMethods is required
- 'AllowedMethods' => array('PUT',),
- // AllowedOrigins is required
- 'AllowedOrigins' => array('*',),
- 'ExposeHeaders' => array('*',),
- 'MaxAgeSeconds' => 1,
- ),
- array(
- 'ID' => '12345',
- 'AllowedHeaders' => array('*',),
- // AllowedMethods is required
- 'AllowedMethods' => array('PUT',),
- // AllowedOrigins is required
- 'AllowedOrigins' => array('*',),
- 'ExposeHeaders' => array('*',),
- 'MaxAgeSeconds' => 1,
- ),
- // ... repeated
- ),
- ));
- $this->cosClient->getBucketCors(array(
- // Bucket is required
- 'Bucket' => $this->bucket,));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * bucket未设置cors规则,发送get bucket cors
- * NoSuchCORSConfiguration
- * 404
- */
- public function testGetBucketCorsNull()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->getBucketCors(array(
- // Bucket is required
- 'Bucket' => $this->bucket,));
- } catch (ServiceResponseException $e) {
- // echo($e->getExceptionCode());
- // echo($e->getStatusCode());
- $this->assertTrue($e->getExceptionCode() === 'NoSuchCORSConfiguration' && $e->getStatusCode() === 404);
- }
- }
- /*
- * bucket未设置cors规则,发送get bucket cors
- * NoSuchCORSConfiguration
- * 404
- */
- public function testGetBucketCorsNonExisted()
- {
- try {
- $this->cosClient->getBucketCors(array(
- // Bucket is required
- 'Bucket' => $this->bucket,));
- } catch (ServiceResponseException $e) {
- // echo($e->getExceptionCode());
- // echo($e->getStatusCode());
- $this->assertTrue($e->getExceptionCode() === 'NoSuchBucket' && $e->getStatusCode() === 404);
- }
- }
- /*
- * 正常get bucket lifecycle
- * 200
- */
- public function testGetBucketLifecycle()
- {
- try {
- $result = $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $result = $this->cosClient->putBucketLifecycle(array(
- 'Bucket' => $this->bucket,
- 'Rules' => array(
- array(
- 'Status' => 'Enabled',
- 'Filter' => array(
- 'Tag' => array(
- 'Key' => 'datalevel',
- 'Value' => 'backup'
- )
- ),
- 'Transitions' => array(
- array(
- # 30天后转换为Standard_IA
- 'Days' => 30,
- 'StorageClass' => 'Standard_IA'),
- array(
- # 365天后转换为Archive
- 'Days' => 365,
- 'StorageClass' => 'Archive')
- ),
- 'Expiration' => array(
- # 3650天后过期删除
- 'Days' => 3650,
- )
- )
- )
- ));
- sleep(3);
- $result = $this->cosClient->getBucketLifecycle(array(
- // Bucket is required
- 'Bucket' => $this->bucket,
- ));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 正常delete bucket lifecycle
- * 200
- */
- public function testDeleteBucketLifecycle()
- {
- try {
- $result = $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $result = $this->cosClient->putBucketLifecycle(array(
- 'Bucket' => $this->bucket,
- 'Rules' => array(
- array(
- 'Status' => 'Enabled',
- 'Filter' => array(
- 'Tag' => array(
- 'Key' => 'datalevel',
- 'Value' => 'backup'
- )
- ),
- 'Transitions' => array(
- array(
- # 30天后转换为Standard_IA
- 'Days' => 30,
- 'StorageClass' => 'Standard_IA'),
- array(
- # 365天后转换为Archive
- 'Days' => 365,
- 'StorageClass' => 'Archive')
- ),
- 'Expiration' => array(
- # 3650天后过期删除
- 'Days' => 3650,
- )
- )
- )
- ));
- $result = $this->cosClient->deleteBucketLifecycle(array(
- // Bucket is required
- 'Bucket' => $this->bucket,
- ));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket lifecycle,请求body中不指定filter
- * 200
- */
- public function testPutBucketLifecycleNonFilter()
- {
- try {
- $result = $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $result = $this->cosClient->putBucketLifecycle(array(
- // Bucket is required
- 'Bucket' => $this->bucket,
- // Rules is required
- 'Rules' => array(
- array(
- 'Expiration' => array(
- 'Days' => 1000,
- ),
- 'ID' => 'id1',
- // Status is required
- 'Status' => 'Enabled',
- 'Transitions' => array(
- array(
- 'Days' => 100,
- 'StorageClass' => 'Standard_IA'),
- ),
- // ... repeated
- ),
- )));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'NoSuchBucket' && $e->getStatusCode() === 404);
- }
- }
- /*
- * put bucket,bucket名称带有-
- * 200
- */
- public function testPutBucket2()
- {
- try {
- try{
- $this->cosClient->deleteBucket(array('Bucket' => '12345-'.$this->bucket));
- } catch (\Exception $e) {
- }
- $this->cosClient->createBucket(array('Bucket' => '12345-'.$this->bucket));
- $this->cosClient->deleteBucket(array('Bucket' => '12345-'.$this->bucket));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put bucket,bucket名称带有两个-
- * 200
- */
- public function testPutBucket3()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket.'-12333-4445'));
- $this->cosClient->deleteBucket(array('Bucket' => $this->bucket.'-12333-4445'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 正常get bucket location
- * 200
- */
- public function testGetBucketLocation()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->getBucketLocation(array('Bucket' => $this->bucket));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * bucket不存在,发送get bucket location请求
- * NoSuchBucket
- * 404
- */
- public function testGetBucketLocationNonExisted()
- {
- try {
- $this->cosClient->getBucketLocation(array('Bucket' => $this->bucket));
- } catch (ServiceResponseException $e) {
- // echo($e->getExceptionCode());
- // echo($e->getStatusCode());
- $this->assertTrue($e->getExceptionCode() === 'NoSuchBucket' && $e->getStatusCode() === 404);
- }
- }
- /**********************************
- * TestObject
- **********************************/
- /*
- * put object,请求头部携带服务端加密参数
- * 200
- */
- public function testPutObjectEncryption()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '11//32//43',
- 'Body' => 'Hello World!',
- 'ServerSideEncryption' => 'AES256'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 上传文件Bucket不存在
- * NoSuchBucket
- * 404
- */
- public function testPutObjectIntoNonexistedBucket() {
- try {
- $this->cosClient->putObject(array(
- 'Bucket' => $this->bucket, 'Key' => 'hello.txt', 'Body' => 'Hello World'));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'NoSuchBucket');
- $this->assertTrue($e->getStatusCode() === 404);
- }
- }
- /*
- * 上传小文件
- * 200
- */
- public function testUploadSmallObject() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好.txt', 'Hello World');
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 上传空文件
- * 200
- */
- public function testPutObjectEmpty() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好.txt', '123');
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 上传已存在的文件
- * 200
- */
- public function testPutObjectExisted() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好.txt', '1234124');
- $this->cosClient->upload($this->bucket, '你好.txt', '请二位qwe');
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object,请求头部携带自定义头部x-cos-meta-
- * 200
- */
- public function testPutObjectMeta() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'Body' => '1234124',
- 'Metadata' => array(
- 'lew' => str_repeat('a', 1 * 1024),
- )));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object,请求头部携带自定义头部x-cos-meta-
- * KeyTooLong
- * 400
- */
- public function testPutObjectMeta2K() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'Body' => '1234124',
- 'Metadata' => array(
- 'lew' => str_repeat('a', 3 * 1024),
- )));
- } catch (ServiceResponseException $e) {
- // echo($e->getExceptionCode());
- // echo($e->getStatusCode());
- $this->assertTrue($e->getExceptionCode() === 'KeyTooLong' && $e->getStatusCode() === 400);
- }
- }
- /*
- * 上传复杂文件名的文件
- * 200
- */
- public function testUploadComplexObject() {
- try {
- $result = $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '→↓←→↖↗↙↘! \"#$%&\'()*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~', 'Hello World');
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 上传大文件
- * 200
- */
- public function testUploadLargeObject() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, 'hello.txt', str_repeat('a', 9 * 1024 * 1024));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 下载文件
- * 200
- */
- public function testGetObject() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好.txt', 'Hello World');
- $this->cosClient->getObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * get object,object名称包含特殊字符
- * 200
- */
- public function testGetObjectSpecialName() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好<>!@#^%^&*&(&^!@#@!.txt', 'Hello World');
- $this->cosClient->getObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好<>!@#^%^&*&(&^!@#@!.txt',));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * get object,请求头部带if-match,参数值为true
- * 200
- */
- public function testGetObjectIfMatchTrue() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好.txt', 'Hello World');
- $this->cosClient->getObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'IfMatch' => '"b10a8db164e0754105b7a99be72e3fe5"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * get object,请求头部带if-match,参数值为false
- * PreconditionFailed
- * 412
- */
- public function testGetObjectIfMatchFalse() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好.txt', 'Hello World');
- $this->cosClient->getObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'IfMatch' => '""'));
- } catch (ServiceResponseException $e) {
- // echo($e->getExceptionCode());
- // echo($e->getStatusCode());
- $this->assertTrue($e->getExceptionCode() === 'PreconditionFailed' && $e->getStatusCode() === 412);
- }
- }
- /*
- * get object,请求头部带if-none-match,参数值为true
- * 200
- */
- public function testGetObjectIfNoneMatchTrue() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好.txt', 'Hello World');
- $this->cosClient->getObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'IfNoneMatch' => '"b10a8db164e0754105b7a99be72e3fe5"'));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'NotModified' && $e->getStatusCode() === 304);
- }
- }
- /*
- * get object,请求头部带if-none-match,参数值为false
- * PreconditionFailed
- * 412
- */
- public function testGetObjectIfNoneMatchFalse() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '你好.txt', 'Hello World');
- $this->cosClient->getObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'IfNoneMatch' => '""'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 获取文件url
- * 200
- */
- public function testGetObjectUrl() {
- try{
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->getObjectUrl($this->bucket, 'hello.txt', '+10 minutes');
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 设置objectacl
- * 200
- */
- public function testPutObjectACL() {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '11', 'hello.txt');
- $this->cosClient->PutObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '11',
- 'Grants' => array(
- array(
- 'Grantee' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'Type' => 'CanonicalUser',
- ),
- 'Permission' => 'FULL_CONTROL',
- ),
- // ... repeated
- ),
- 'Owner' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- )));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * 获取objectacl
- * 200
- */
- public function testGetObjectACL()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->upload($this->bucket, '11', 'hello.txt');
- $this->cosClient->PutObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '11',
- 'Grants' => array(
- array(
- 'Grantee' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'Type' => 'CanonicalUser',
- ),
- 'Permission' => 'FULL_CONTROL',
- ),
- // ... repeated
- ),
- 'Owner' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- )));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object acl,设置object公共权限为private
- * 200
- */
- public function testPutObjectAclPrivate()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(
- array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'ACL'=>'private'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object acl,设置object公共权限为public-read
- * 200
- */
- public function testPutObjectAclPublicRead()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(
- array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'ACL'=>'public-read'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object acl,公共权限非法
- * InvalidArgument
- * 400
- */
- public function testPutObjectAclInvalid()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(
- array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'ACL'=>'public'
- ));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'InvalidArgument' && $e->getStatusCode() === 400);
- }
- }
- /*
- * put object acl,设置object账号权限为grant-read
- * 200
- */
- public function testPutObjectAclReadToUser()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'GrantRead' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object acl,设置object账号权限为grant-write
- * 200
- */
- // public function testPutObjectAclWriteToUser()
- // {
- // try {
- // $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- // $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- // $this->cosClient->PutObjectAcl(array(
- // 'Bucket' => $this->bucket,
- // 'Key' => '你好.txt',
- // 'GrantWrite' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- // } catch (ServiceResponseException $e) {
- // $this->assertFalse(true, $e);
- // }
- // }
- /*
- * put object acl,设置object账号权限为grant-full-control
- * 200
- */
- public function testPutObjectAclFullToUser()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object acl,设置object账号权限,同时授权给多个账户
- * 200
- */
- public function testPutObjectAclToUsers()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970",id="qcs::cam::uin/2779643970:uin/2779643970",id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object acl,设置object账号权限,授权给子账号
- * 200
- */
- public function testPutObjectAclToSubuser()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970"'));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object acl,设置object账号权限,同时指定read、write和fullcontrol
- * 200
- */
- // public function testPutObjectAclReadWriteFull()
- // {
- // try {
- // $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- // $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- // $this->cosClient->PutObjectAcl(array(
- // 'Bucket' => $this->bucket,
- // 'Key' => '你好.txt',
- // 'GrantRead' => 'id="qcs::cam::uin/123:uin/123"',
- // 'GrantWrite' => 'id="qcs::cam::uin/2779643970:uin/2779643970"',
- // 'GrantFullControl' => 'id="qcs::cam::uin/2779643970:uin/2779643970"',));
- // } catch (ServiceResponseException $e) {
- // $this->assertFalse(true, $e);
- // }
- // }
- /*
- * put object acl,设置object账号权限,grant值非法
- * InvalidArgument
- * 400
- */
- public function testPutObjectAclInvalidGrant()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'GrantFullControl' => 'id="qcs::camuin/321023:uin/2779643970"',));
- } catch (ServiceResponseException $e) {
- $this->assertTrue($e->getExceptionCode() === 'InvalidArgument' && $e->getStatusCode() === 400);
- }
- }
- /*
- * put object acl,设置object账号权限,通过body方式授权
- * 200
- */
- public function testPutObjectAclByBody()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->PutObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'Grants' => array(
- array(
- 'Grantee' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'Type' => 'CanonicalUser',
- ),
- 'Permission' => 'FULL_CONTROL',
- ),
- // ... repeated
- ),
- 'Owner' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- )));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- /*
- * put object acl,设置object账号权限,通过body方式授权给anyone
- * 200
- */
- public function testPutObjectAclByBodyToAnyone()
- {
- try {
- $this->cosClient->createBucket(array('Bucket' => $this->bucket));
- $this->cosClient->putObject(array('Bucket' => $this->bucket,'Key' => '你好.txt', 'Body' => '123'));
- $this->cosClient->putObjectAcl(array(
- 'Bucket' => $this->bucket,
- 'Key' => '你好.txt',
- 'Grants' => array(
- array(
- 'Grantee' => array(
- 'DisplayName' => 'qcs::cam::anyone:anyone',
- 'ID' => 'qcs::cam::anyone:anyone',
- 'Type' => 'CanonicalUser',
- ),
- 'Permission' => 'FULL_CONTROL',
- ),
- // ... repeated
- ),
- 'Owner' => array(
- 'DisplayName' => 'qcs::cam::uin/2779643970:uin/2779643970',
- 'ID' => 'qcs::cam::uin/2779643970:uin/2779643970',
- )));
- } catch (ServiceResponseException $e) {
- $this->assertFalse(true, $e);
- }
- }
- }
|