对象元信息是对象的属性描述,包括HTTP标准属性(HTTP Header)和用户自定义元数据(User Meta)两种。本文介绍设置及获取对象元信息的示例代码。
您可以通过 TosClient->setObjectMeta 和 TosClient->headObject 来分别设置和获取对象元数据,示例代码如下:
<?php // 假设使用 composer 安装 require_once __DIR__ . '/vendor/autoload.php'; use Tos\TosClient; use Tos\Exception\TosClientException; use Tos\Exception\TosServerException; use Tos\Model\SetObjectMetaInput; use Tos\Model\HeadObjectInput; use Tos\Model\Enum; try { $client = new TosClient([ 'region' => 'your region', 'endpoint' => 'your endpoint', // 从环境变量中获取访问密钥 'ak' => getenv('TOS_ACCESS_KEY'), 'sk' => getenv('TOS_SECRET_KEY'), ]); // 设置对象元数据 $input = new SetObjectMetaInput('bucket-test', 'key-test'); $input->setContentDisposition('test-disposition-new'); // 设置 HTTP 标准属性 $expires = time() + 7200; $input->setExpires($expires); $input->setContentEncoding('test-encoding-new'); $input->setContentLanguage('test-language-new'); $input->setContentType('text/plain-new'); // 设置用户自定义元数据 $input->setMeta(['aaa' => 'bbb', '中文键' => '中文值']); $output = $client->setObjectMeta($input); echo $output->getRequestId() . PHP_EOL; // 获取对象元数据 $output = $client->headObject(new HeadObjectInput('bucket-test', 'key-test')); echo $output->getRequestId() . PHP_EOL; // 获取 HTTP 标准属性 echo $output->getExpires() . PHP_EOL; echo $output->getContentEncoding() . PHP_EOL; echo $output->getContentLanguage() . PHP_EOL; echo $output->getContentType() . PHP_EOL; // 获取用户自定义元数据 foreach ($output->getMeta() as $k => $v) { echo $k . '=' . $v . 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; }