require_once __DIR__ . '/vendor/autoload.php';
use Tos\Exception\TosClientException;
use Tos\Exception\TosServerException;
use Tos\Model\ListObjectsInput;
use Tos\Model\ListObjectVersionsInput;
$client = new TosClient([
'region' => 'your region',
'endpoint' => 'your endpoint',
'ak' => getenv('TOS_ACCESS_KEY'),
'sk' => getenv('TOS_SECRET_KEY'),
$input = new ListObjectsInput('bucket-test');
$input->setMaxKeys(100);
$input->setPrefix('prefix');
$input->setDelimiter('/');
$output = $client->listObjects($input);
echo $output->getRequestId() . PHP_EOL;
foreach ($output->getContents() as $content) {
echo $content->getKey() . PHP_EOL;
echo $content->getSize() . PHP_EOL;
echo $content->getETag() . PHP_EOL;
foreach ($output->getCommonPrefixes() as $commonPrefix) {
echo $commonPrefix->getPrefix() . PHP_EOL;
echo $output->getNextMarker() . PHP_EOL;
$input = new ListObjectVersionsInput('bucket-test');
$input->setKeyMarker('');
$input->setVersionIDMarker('');
$input->setDelimiter('/');
$output = $client->listObjectVersions($input);
echo $output->getRequestId() . PHP_EOL;
foreach ($output->getVersions() as $version) {
echo $version->getKey() . PHP_EOL;
echo $version->getVersionID() . PHP_EOL;
echo $version->getSize() . PHP_EOL;
echo $version->getETag() . PHP_EOL;
foreach ($output->getDeleteMarkers() as $deleteMarker) {
echo $deleteMarker->getKey() . PHP_EOL;
echo $deleteMarker->getVersionID() . PHP_EOL;
foreach ($output->getCommonPrefixes() as $commonPrefix) {
echo $commonPrefix->getPrefix() . PHP_EOL;
echo $output->getNextKeyMarker() . PHP_EOL;
echo $output->getNextVersionIDMarker() . PHP_EOL;
} catch (TosClientException $ex) {
echo $ex->getMessage() . PHP_EOL;
} catch (TosServerException $ex) {
echo $ex->getRequestId() . PHP_EOL;
echo $ex->getStatusCode() . PHP_EOL;
echo $ex->getErrorCode() . PHP_EOL;