tencent cloud

文档反馈

修改对象元数据

最后更新时间:2022-05-11 12:10:08

    简介

    本文档提供关于修改对象元数据操作相关的 SDK 示例代码。

    修改对象元数据

    源和目标是同一个对象,且 CopyStatus 设置为 Replaced,即可以通过头域来修改对象的元数据。

    请求示例

    # -*- coding=utf-8
    from qcloud_cos import CosConfig
    from qcloud_cos import CosS3Client
    import sys
    import logging
    # 正常情况日志级别使用INFO,需要定位时可以修改为DEBUG,此时SDK会打印和服务端的通信信息
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)
    # 1. 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在CosConfig中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成
    secret_id = 'SecretId'     # 替换为用户的 SecretId,请登录访问管理控制台进行查看和管理,https://console.tencentcloud.com/cam/capi
    secret_key = 'SecretKey'   # 替换为用户的 SecretKey,请登录访问管理控制台进行查看和管理,https://console.tencentcloud.com/cam/capi
    region = 'ap-beijing'      # 替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.tencentcloud.com/cos5/bucket
                              # COS支持的所有region列表参见https://www.tencentcloud.com/document/product/436/6224
    token = None               # 如果使用永久密钥不需要填入token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见https://www.tencentcloud.com/document/product/436/14048
    scheme = 'https'           # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
    config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
    client = CosS3Client(config)
    response = client.copy_object(
       Bucket='examplebucket-1250000000',
       Key='exampleobject',
       CopySource={
           'Bucket': 'sourcebucket-1250000000', 
           'Key': 'exampleobject', 
           'Region': 'ap-guangzhou'
       },
       CopyStatus='Replaced', 
       ContentType='text/plain', # 修改对象ContentType
       Metadata={'x-cos-meta-key1': 'value1', 'x-cos-meta-key2': 'value2'} # 修改自定义元数据
    )
    

    参数说明

    参数名称 参数描述 类型 是否必填
    Bucket 存储桶名称,由 BucketName-APPID 构成 String
    Key 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg String
    CopySource 描述拷贝源对象的路径,包含 Bucket、Key、Region、VersionId Dict
    CopyStatus 可选值为 Copy、Replaced,设置为 Copy 时,忽略设置的用户元数据信息直接复制,设置为 Replaced 时,按设置的元信息修改元数据,当目标路径和源路径一样时,必须设置为 Replaced String
    ACL 设置对象的 ACL,如 private,public-read String
    GrantFullControl 赋予指定账户对对象的所有权限,格式为 id="OwnerUin" String
    GrantRead 赋予指定账户对对象的读权限,格式为 id="OwnerUin" String
    Expires 设置 Expires String
    CacheControl 缓存策略,设置 Cache-Control String
    ContentType 内容类型,设置 Content-Type String
    ContentDisposition 文件名称,设置 Content-Disposition String
    ContentEncoding 编码格式,设置 Content-Encoding String
    ContentLanguage 语言类型,设置 Content-Language String
    Metadata 用户自定义的对象元数据 Dict

    修改对象存储类型

    源和目标是同一个对象,且 CopyStatus 设置为 Replaced,即可以通过 StorageClass 参数来修改对象的存储类型。

    请求示例

    # -*- coding=utf-8
    from qcloud_cos import CosConfig
    from qcloud_cos import CosS3Client
    import sys
    import logging
    # 正常情况日志级别使用INFO,需要定位时可以修改为DEBUG,此时SDK会打印和服务端的通信信息
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)
    # 1. 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在CosConfig中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成
    secret_id = 'SecretId'     # 替换为用户的 SecretId,请登录访问管理控制台进行查看和管理,https://console.tencentcloud.com/cam/capi
    secret_key = 'SecretKey'   # 替换为用户的 SecretKey,请登录访问管理控制台进行查看和管理,https://console.tencentcloud.com/cam/capi
    region = 'ap-beijing'      # 替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.tencentcloud.com/cos5/bucket
                             # COS支持的所有region列表参见https://www.tencentcloud.com/document/product/436/6224
    token = None               # 如果使用永久密钥不需要填入token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见https://www.tencentcloud.com/document/product/436/14048
    scheme = 'https'           # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
    config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
    client = CosS3Client(config)
    response = client.copy_object(
      Bucket='examplebucket-1250000000',
      Key='exampleobject',
      CopySource={
          'Bucket': 'examplebucket-1250000000', 
          'Key': 'exampleobject', 
          'Region': 'ap-guangzhou'
      },
      CopyStatus='Replaced', 
      StorageClass='STANDARD_IA' # 修改为低频存储
    )
    

    全部参数请求示例

    response = client.copy_object(
      Bucket='examplebucket-1250000000',
      Key='exampleobject',
      CopySource={
          'Bucket': 'sourcebucket-1250000000', 
          'Key': 'exampleobject', 
          'Region': 'ap-guangzhou',
          'VersionId': 'string'
      },
      CopyStatus='Copy'|'Replaced',
      ACL='private'|'public-read',
      GrantFullControl='string',
      GrantRead='string',
      StorageClass='STANDARD'|'STANDARD_IA',
      Expires='string',
      CacheControl='string',
      ContentType='string',
      ContentDisposition='string',
      ContentEncoding='string',
      ContentLanguage='string',
      Metadata={
          'x-cos-meta-key1': 'value1',
          'x-cos-meta-key2': 'value2'
      }
    )
    

    参数说明

    参数名称 参数描述 类型 是否必填
    Bucket 存储桶名称,由 BucketName-APPID 构成 String
    Key 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg String
    CopySource 描述拷贝源对象的路径,包含 Bucket、Key、Region、VersionId Dict
    CopyStatus 可选值为 Copy、Replaced,设置为 Copy 时,忽略设置的用户元数据信息直接复制,设置为 Replaced 时,按设置的元信息修改元数据,当目标路径和源路径一样时,必须设置为 Replaced String
    StorageClass 设置对象的存储类型,STANDARD,STANDARD_IA,默认值 STANDARD String
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持