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); } }