文件元信息(Object Meta)包括HTTP header和自定义元信息,详情请参见开发指南中的文件元信息

设置HTTP header

OSS允许自定义HTTP header。 以下代码用于设置HTTP header:

# -*- coding: utf-8 -*-
import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')

bucket.put_object('<yourObjectName>', '{"age": 1}', headers={'Content-Type': 'application/json; charset=utf-8'})

HTTP header详情请参见RFC2616

设置自定义元信息

您可以自定义文件的元信息来对文件进行描述。以下代码用于设置文件的自定义元信息:

# -*- coding: utf-8 -*-

import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')

bucket.put_object('<yourObjectName>', 'a novel', headers={'x-oss-meta-author': 'O. Henry'})

修改文件元信息

以下代码用于修改文件元信息:

# -*- coding: utf-8 -*-
import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')

bucket.update_object_meta('<yourObjectName>', {'x-oss-meta-author': 'O. Henry'})
# 每次调用bucket.update_object_meta都会清空之前设置的值。
bucket.update_object_meta('<yourObjectName>', {'x-oss-meta-price': '100 dollar'})

以下代码用于更改Content-Type等元信息:

bucket.update_object_meta('<yourObjectName>', {'x-oss-meta-author': 'O. Henry'})
# 每次调用bucket.update_object_meta都会清空之前设置的值。
bucket.update_object_meta('<yourObjectName>', {'Content-Type': 'text/plain'})