获取及更新文件元信息
更新时间:2026-09-23
文件元信息(Object Metadata)是用户上传到 BOS 的文件的属性描述,分为两类:HTTP 标准属性(HTTP Headers,如 Content-Type、Cache-Control 等)和 User Meta(用户自定义元信息)。
运行以下示例前,请先参考初始化完成 BOS Client 初始化,并将示例中的 bucket_name、object_key 替换为实际值。
获取文件元信息
通过 get_object_meta_data 方法可以只获取 Object 的元信息,而不下载 Object 内容:
Python
1response = bos_client.get_object_meta_data(bucket_name, object_key)
2print(response.metadata)
response.metadata 中常用的元信息字段可参考下载文件中"只获取 ObjectMetadata"一节。
修改文件元信息
BOS 通过拷贝 Object 的方式修改 Object 的 Metadata:将源 Bucket、源 Object 分别设置为目标 Bucket、目标 Object(即拷贝自身),并传入新的 Metadata,从而实现"以拷贝自身的方式修改元信息"。调用 copy_object 时若传入了 user_metadata 或 content_type,SDK 会自动将拷贝指令(x-bce-metadata-directive)设置为 replace,用新元信息覆盖原有元信息;若两者都不传,则为 copy,此时对自身的拷贝会被服务端拒绝。
注意: 归档(
ARCHIVE)类型的文件在取回前不支持修改元信息。
Python
1user_metadata = {'meta-key': 'meta-value'}
2
3# 通过拷贝自身并传入新的 user_metadata 来修改元信息
4bos_client.copy_object(
5 source_bucket_name=bucket_name,
6 source_key=object_key,
7 target_bucket_name=bucket_name,
8 target_key=object_key,
9 user_metadata=user_metadata
10)
11
12response = bos_client.get_object_meta_data(bucket_name, object_key)
13print(response.metadata.user_metadata)
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
source_bucket_name |
是 | 源 Object 所在的 Bucket。 |
source_key |
是 | 源 Object 名称(Key)。 |
target_bucket_name |
是 | 目标 Bucket;修改自身元信息时与 source_bucket_name 相同。 |
target_key |
是 | 目标 Object;修改自身元信息时与 source_key 相同。 |
user_metadata |
否 | 用户自定义元信息,键值对形式。传入后拷贝指令自动置为 replace,用新元信息覆盖原有元信息。所有 User Meta 总大小不能超过 2KB。 |
提示: 用户自定义元信息在 Object 被下载时会随响应一并返回,可通过
response.metadata.user_metadata读取。
评价此篇文章
