You need to enable JavaScript to run this app.
导航

管理对象元信息(PHP SDK)

最近更新时间2024.02.04 18:30:59

首次发布时间2022.11.16 14:58:44

对象元信息是对象的属性描述,包括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;
}