赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 对象存储
  4. 开发参考
  5. SDK参考
  6. PHP
  7. 1.0手册
  8. 对象文件
  9. 管理文件
  10. 管理文件元数据
  11. 修改已有文件的元数据

修改已有文件的元数据

  • 管理文件元数据
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

本文介绍如何修改已有文件(Object)的元数据。

注意事项

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见OSS访问域名、数据中心、开放端口。

  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见新建OssClient。

  • 要修改已有文件的元数据,您必须具有oss:GetObject和oss:PutObject权限。具体操作,请参见为RAM用户授权自定义的权限策略。

示例代码

以下代码用于修改已有文件的元数据。

<?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\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;

// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
$provider = new EnvironmentVariableCredentialsProvider();
// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 填写源Bucket名称,例如srcexamplebucket。
$fromBucket = "srcexamplebucket";
// 填写源Object的完整路径。Object完整路径中不能包含Bucket名称,例如srcdir/exampleobject.txt。
$fromObject = "<yourFromObjectName>";
// 填写与源Bucket处于同一地域的目标Bucket名称,例如destexamplebucket。
$toBucket = "destexamplebucket";
// 填写目标Object的完整路径,完整路径中不能包含Bucket名称,例如destdir/exampleobject.txt。
$toObject = "destdir/exampleobject.txt"; 
$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{
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
    // 修改已有文件的元数据。
    $ossClient->copyObject($fromBucket, $fromObject, $toBucket, $toObject, $copyOptions);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");            

相关文档

  • 关于修改已有文件元数据的完整示例代码,请参见GitHub示例。

  • 关于修改已有文件元数据的API接口说明,请参见CopyObject。

相关文章

上传文件时设置元数据 2025-04-21 18:14

对象存储OSS存储的文件(Object)信息包含Key、Data和Object Meta。Object Meta是对文件的属性描述,包括HTTP标准属性(HTTP Header)和用户自定义元数据(User Meta)两种。您可以通过设置HTTP标准属性来自定义HTTP请求的策略,例如文件(Obje

修改已有文件的元数据 2025-04-21 18:14

本文介绍如何修改已有文件(Object)的元数据。 注意事项

获取文件元数据 2025-04-21 18:14

您可以获取一个文件(Object)的元数据信息,包括该Object的ETag、Size、LastModified信息,并且不返回该Object的内容。 注意事项

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号