| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 | <?phpnamespace OSS\Tests;use OSS\Core\OssException;use OSS\OssClient;require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestOssClientBase.php';class OssClientListObjectsTest extends TestOssClientBase{    public function testListObjectsDefault()    {        try {            $listObjectInfo = $this->ossClient->listObjects($this->bucket);            $objectList = $listObjectInfo->getObjectList();            $prefixList = $listObjectInfo->getPrefixList();            $this->assertNotNull($objectList);            $this->assertNotNull($prefixList);            $this->assertTrue(is_array($objectList));            $this->assertTrue(is_array($prefixList));            $this->assertEquals((2), count($objectList));            $this->assertEquals(4, count($prefixList));            $this->assertEquals('file++00', $objectList[0]->getKey());            $this->assertEquals('file++01', $objectList[1]->getKey());            $this->assertEquals('folder/', $prefixList[0]->getPrefix());            $this->assertEquals('sub++/', $prefixList[1]->getPrefix());            $this->assertEquals('test/', $prefixList[2]->getPrefix());            $this->assertEquals('work/', $prefixList[3]->getPrefix());        } catch (OssException $e) {            $this->assertTrue(false);        }    }    public function testListObjectsWithPrefix()    {        /**         * List the files in your bucket.         */        $prefix = 'folder/';        $delimiter = '';        $next_marker = '';        $maxkeys = 1000;        $options = array(            'delimiter' => $delimiter,            'prefix' => $prefix,            'max-keys' => $maxkeys,            'marker' => $next_marker,        );        try {            $listObjectInfo = $this->ossClient->listObjects($this->bucket, $options);            $objectList = $listObjectInfo->getObjectList();            $prefixList = $listObjectInfo->getPrefixList();            $this->assertNotNull($objectList);            $this->assertNotNull($prefixList);            $this->assertTrue(is_array($objectList));            $this->assertTrue(is_array($prefixList));            $this->assertEquals(12, count($objectList));            $this->assertEquals(0, count($prefixList));            $this->assertEquals('folder/00', $objectList[0]->getKey());            $this->assertEquals('folder/01', $objectList[1]->getKey());            $this->assertEquals('folder/11', $objectList[11]->getKey());        } catch (OssException $e) {            $this->assertTrue(false);        }    }    public function testListObjectsWithMaxKeysAndMarker()    {        $count = 0;        $nextMarker = '';        while (true) {            try {                $options = array(                    'delimiter' => '',                    'marker' => $nextMarker,                    'max-keys' => 2,                );                $listObjectInfo = $this->ossClient->listObjects($this->bucket, $options);            } catch (OssException $e) {                $this->assertTrue(false);            }            $nextMarker = $listObjectInfo->getNextMarker();            $listObject = $listObjectInfo->getObjectList();            $count += count($listObject);            $this->assertEquals(2, count($listObject));            if ($listObjectInfo->getIsTruncated() !== "true") {                break;            }        }        $this->assertEquals(12 + 8 + 5 + 3 + 2, $count);    }    public function testListObjectsWithMarker()    {        $count = 0;        $nextMarker = 'h';        while (true) {            try {                $options = array(                    'delimiter' => '',                    'marker' => $nextMarker,                    'max-keys' => 1,                );                $listObjectInfo = $this->ossClient->listObjects($this->bucket, $options);            } catch (OssException $e) {                $this->assertTrue(false);            }            $nextMarker = $listObjectInfo->getNextMarker();            $listObject = $listObjectInfo->getObjectList();            $count += count($listObject);            $this->assertEquals(1, count($listObject));            if ($listObjectInfo->getIsTruncated() !== "true") {                break;            }        }        $this->assertEquals(8 + 5 + 3, $count);        $nextMarker = 'h';        try {            $options = array(                'delimiter' => '',                'marker' => $nextMarker,                'max-keys' => 5,            );            $listObjectInfo = $this->ossClient->listObjects($this->bucket, $options);        } catch (OssException $e) {            $this->assertTrue(false);        }        $nextMarker = $listObjectInfo->getNextMarker();        $listObject = $listObjectInfo->getObjectList();        $this->assertEquals('test/01', $nextMarker);        $this->assertEquals(5, count($listObject));        $this->assertEquals("true", $listObjectInfo->getIsTruncated());    }    protected function setUp(): void    {        parent::setUp();        //folder         for ($i = 0; $i < 12; $i++) {            $key = 'folder/'. sprintf("%02d",$i);            $this->ossClient->putObject($this->bucket, $key, "content");        }        //test        for ($i = 0; $i < 8; $i++) {            $key = 'test/'. sprintf("%02d",$i);            $this->ossClient->putObject($this->bucket, $key, "content");        }        //work        for ($i = 0; $i < 5; $i++) {            $key = 'work/'. sprintf("%02d",$i);            $this->ossClient->putObject($this->bucket, $key, "content");        }        //sub++        for ($i = 0; $i < 3; $i++) {            $key = 'sub++/'. sprintf("%02d",$i);            $this->ossClient->putObject($this->bucket, $key, "content");        }        //file++        for ($i = 0; $i < 2; $i++) {            $key = 'file++'. sprintf("%02d",$i);            $this->ossClient->putObject($this->bucket, $key, "content");        }    }    protected function tearDown(): void    {        parent::tearDown();    }}
 |