获取数据元信息
更新时间:2024-04-09
概述
数据元信息(Object Meta)是对上传到 BOS 的文件的属性描述,分为两种:系统定义的 Meta 和 User Meta(用户自定义元信息)。数据元信息可以在各种方式上传时或者拷贝文件时进行设置。
系统定义的 Metadata
每个 Object 都有一组 Metadata 信息,Metadata 用来标识 Object 的属性如日期、内容长度等信息,这些 Metadata 信息用于 Object 管理。
系统定义的 Metadata 也分为用户可修改和用户不可修改两种。其中如 Object 的固有属性如创建日期、内容长度、上次修改时间、MD5 码等为不可修改的 Metadata 。如 Content-Type、Cache-Control、storage-class 等 Metadata,用户在创建 Object 时或者根据需要可以修改这些 Metadata 的值。系统定义的 Metadata 的详细描述参见下表:
名称 | 类型 | 描述 | 是否可被 用户修改 |
---|---|---|---|
Cache-Control | String | 下载 Object 的 Cache 设置,常见的可取值为 private、no-cache、 max-age、must-revalidate。 |
是 |
Content-Disposition | String | 设置浏览器是否下载,可取值为 inline、attachment; "filename=download.txt"。 | 是 |
Content-MD5 | String | RFC2616 定义的 HTTP 请求内容的 MD5 摘要,可以通过携带该字段来验证保存在 BOS 侧的文件和用户预期的文件是否一致。 | 否 |
Content-Length | Long Int | 返回 Object 的数据大小。 | 否 |
Content-Type | String | Object 的类型及编码方式。 | 是 |
Expires | String | 设置下载 Object 时的缓存失效时间。 | 是 |
ETag | String | Object 的 HTTP 协议实体标签。 | 否 |
x-bce-storage-class | String | 标准存储返回 STANDARD,低频存储返回 STANDARD_IA, 冷存储返回 COLD ,归档存储返回 ARCHIVE。 | 否 |
x-bce-object-type | String | 标识 Object 是 Appendable 还是普通的, Appendale 的 Object 可以追加写,普通的不能。归档存储不支持 Appendable。 | 否 |
x-bce-tagging-count | Long Int | 标识 Object 的对象标签的数量。 | 否 |
用户自定义的 Metadata
为了便于用户对 Object 进行更多描述。BOS 中规定所有以 x-bce-meta- 为前缀的参数,则视为用户自定义的 Metadata ,比如 x-bce-meta-tag。一个 Object 可以有若干个用户自定义 Metadata。这些自定义 Metadata 会在下载 GetObject 或者 HeadObject 的时候在 HTTP 头部中返回。
说明:
- PUT 请求头的大小限制为 8KB 。在 PUT 请求标头中,用户定义的 Metadata 的大小限制为 2KB。
操作方式
BOS 支持多种 SDK 获取 Object 的元信息,具体如下:
示例
以 Java SDK 为例
String EndPoint = "bj.bce.bos.com"
public static void GetObjectMeta(BosClient bosClient, String bucketname, String objectkey)
{
ObjectMetadata objectMetadata;
objectMetadata = bosClient.getObjectMetadata(bucketname, objectkey);
System.out.println(objectMetadata.getContentType());
System.out.println(objectMetadata.getUserMetadata());
}