文件元信息(Object Meta)包括HTTP Header和自定义元信息。本文介绍如何设置、修改、以及获取文件元信息。
文件元信息详情请参见文件元信息。
设置文件元信息
以下代码用于设置文件元信息:
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。 $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; $bucket= "<yourBucketName>"; // yourObjectName表示想要设置文件元信息的Object所在存储空间的完整名称,即包含文件后缀在内的完整路径,如填写为example/test.jpg。 $object = "<yourObjectName>"; $content = file_get_contents(__FILE__); $options = array( OssClient::OSS_HEADERS => array( 'Expires' => '2012-10-01 08:00:00', 'Content-Disposition' => 'attachment; filename="xxxxxx"', 'x-oss-meta-self-define-title' => 'user define meta info', )); try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->putObject($bucket, $object, $content, $options); } catch(OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n");
修改文件元信息
以下代码用于修改文件元信息:
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; /// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。 $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; $fromBucket = "<yourFromBucketName>"; $fromObject = "<yourFromObjectName>"; $toBucket = $fromBucket; $toObject = $fromObject; $copyOptions = array( OssClient::OSS_HEADERS => array( 'Expires' => '2018-10-01 08:00:00', 'Content-Disposition' => 'attachment; filename="xxxxxx"', 'x-oss-meta-location' => 'location', // 指定设置目标Object元信息的方式,此处以指定为'REPLACE'为例,表示忽略源Object的元数据,直接采用请求中指定的元数据。若设置为COPY,表示复制源Object的元数据到目标Object。 'x-oss-metadata-directive' => 'REPLACE', ), ); try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->copyObject($fromBucket, $fromObject, $toBucket, $toObject, $copyOptions); } catch(OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n");
获取文件元信息
以下代码用于获取文件元信息:
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。 $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; $bucket= "<yourBucketName>"; $object = "<yourObjectName>"; $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); try { // 获取文件的全部元信息。 $objectMeta = $ossClient->getObjectMeta($bucket, $object); print_r($objectMeta); // 获取文件的部分元信息。 $objectMeta = $ossClient->getSimplifiedObjectMeta($bucket, $object); print_r($objectMeta); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n");