| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 | <?phpnamespace OSS\Tests;use OSS\Core\OssException;use OSS\OssClient;use OSS\Model\RestoreConfig;require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestOssClientBase.php';class OssClientRestoreObjectTest extends TestOssClientBase{    private $iaBucket;    private $archiveBucket;    public function testIARestoreObject()    {        $object = 'storage-object';        $this->ossClient->putObject($this->iaBucket, $object,'testcontent');        try{            $this->ossClient->restoreObject($this->iaBucket, $object);            $this->assertTrue(false);        }catch (OssException $e){            $this->assertEquals('400', $e->getHTTPStatus());            $this->assertEquals('OperationNotSupported', $e->getErrorCode());        }    }    public function testNullObjectRestoreObject()    {        $object = 'null-object';        try{            $this->ossClient->restoreObject($this->bucket, $object);            $this->assertTrue(false);        }catch (OssException $e){            $this->assertEquals('404', $e->getHTTPStatus());        }    }    public function testArchiveRestoreObject()    {        $object = 'storage-object';        $this->ossClient->putObject($this->archiveBucket, $object,'testcontent');        try{            $this->ossClient->getObject($this->archiveBucket, $object);            $this->assertTrue(false);        }catch (OssException $e){            $this->assertEquals('403', $e->getHTTPStatus());            $this->assertEquals('InvalidObjectState', $e->getErrorCode());        }        $result = $this->ossClient->restoreObject($this->archiveBucket, $object);        common::waitMetaSync();        $this->assertEquals('202', $result['info']['http_code']);        try{            $this->ossClient->restoreObject($this->archiveBucket, $object);        }catch(OssException $e){            $this->assertEquals('409', $e->getHTTPStatus());            $this->assertEquals('RestoreAlreadyInProgress', $e->getErrorCode());        }    }    public function testColdArchiveRestoreObject()    {        $client = new OssClient(            getenv('OSS_ACCESS_KEY_ID'),            getenv('OSS_ACCESS_KEY_SECRET'),            'oss-ap-southeast-1.aliyuncs.com', false);        $bucket = $this->bucket . 'cold-archive';        $object = 'storage-object';        //create bucket        $options = array(            OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_COLDARCHIVE        );        $client->createBucket($bucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options);        //test with days        $client->putObject($bucket, $object,'testcontent');        try{            $client->getObject($bucket, $object);            $this->assertTrue(false);        }catch (OssException $e){            $this->assertEquals('403', $e->getHTTPStatus());            $this->assertEquals('InvalidObjectState', $e->getErrorCode());        }        $config = new RestoreConfig(5);        $resoptions = array(            OssClient::OSS_RESTORE_CONFIG => $config        );        try{            $client->restoreObject($bucket, $object, $resoptions);        }catch(OssException $e){            $this->assertTrue(false);        }        try{            $client->restoreObject($bucket, $object, $resoptions);        }catch(OssException $e){            $this->assertEquals('409', $e->getHTTPStatus());            $this->assertEquals('RestoreAlreadyInProgress', $e->getErrorCode());        }        //test with days & tier        $client->putObject($bucket, $object,'testcontent');        try{            $client->getObject($bucket, $object);            $this->assertTrue(false);        }catch (OssException $e){            $this->assertEquals('403', $e->getHTTPStatus());            $this->assertEquals('InvalidObjectState', $e->getErrorCode());        }        $config = new RestoreConfig(5, "Expedited");        $resoptions = array(            OssClient::OSS_RESTORE_CONFIG => $config        );        try{            $client->restoreObject($bucket, $object, $resoptions);        }catch(OssException $e){            $this->assertTrue(false);        }        try{            $client->restoreObject($bucket, $object, $resoptions);        }catch(OssException $e){            $this->assertEquals('409', $e->getHTTPStatus());            $this->assertEquals('RestoreAlreadyInProgress', $e->getErrorCode());        }        $client->deleteObject($bucket, $object);        $client->deleteBucket($bucket);    }    protected function setUp(): void    {        parent::setUp();        $this->iaBucket = 'ia-' . $this->bucket;        $this->archiveBucket = 'archive-' . $this->bucket;        $options = array(            OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA        );        $this->ossClient->createBucket($this->iaBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options);        $options = array(            OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_ARCHIVE        );        $this->ossClient->createBucket($this->archiveBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options);    }    protected function tearDown(): void    {        parent::tearDown();        $object = 'storage-object';        $this->ossClient->deleteObject($this->iaBucket, $object);        $this->ossClient->deleteObject($this->archiveBucket, $object);        $this->ossClient->deleteBucket($this->iaBucket);        $this->ossClient->deleteBucket($this->archiveBucket);    }}
 |