搜索本产品文档关键词
获取及更新文件元信息
所有文档
menu

BOS 对象存储

获取及更新文件元信息

文件元信息(Object Metadata),是对用户上传BOS的文件的属性描述,分为两种:HTTP标准属性(HTTP Headers)和User Meta(用户自定义元信息)。

获取文件元信息

通过 getObjectMetadata 方法可以只获取ObjectMetadata而不获取Object的实体,参考Demo

如下代码所示:

Java
1ObjectMetadata objectMetadata = client.getObjectMetadata(bucketName, objectKey);
2// 查看object元信息
3System.out.println("contentType: " + objectMetadata.getContentType() + "\n" +
4        "contentLength: " + objectMetadata.getContentLength() + "\n" +
5        "contentMd5: " + objectMetadata.getContentMd5() + "\n" +
6        "etag: " + objectMetadata.getETag() + "\n" +
7        "storageClass: " + objectMetadata.getStorageClass() + "\n");

getObjectMetadata方法返回的解析类中可供调用的参数有:

参数
说明
contentType Object的类型
contentLength Object的大小
contentMd5 Object的MD5
etag Object的HTTP协议实体标签
storageClass Object的存储类型
userMetadata 如果在PutObject指定了userMetadata自定义meta,则返回此项
xBceCrc 如果在PutObject指定了object的CRC值(循环冗余校验码),则返回此项

修改文件元信息

BOS修改Object的Metadata通过拷贝Object实现。即拷贝Object的时候,把目的Bucket设置为源Bucket,目的Object设置为源Object,并设置新的Metadata,通过拷贝自身实现修改Metadata的目的。如果不设置新的Metadata,则报错。

Java
1  public void setObjectMeta(BosClient client, String bucketName, String objectKey, ObjectMetadata newObjectMetadata) {
2        
3        CopyObjectRequest request = new CopyObjectRequest(bucketName, objectKey, bucketName, objectKey);
4
5        // 设置新的ObjectMetadata
6        request.setNewObjectMetadata(newObjectMetadata);
7
8        // 拷贝Object
9        CopyObjectResponse copyObjectResponse = client.copyObject(request);
10
11        // 打印结果
12        System.out.println("ETag: " + copyObjectResponse.getETag() + " LastModified: " + copyObjectResponse.getLastModified());
13    }
上一篇
查看文件是否存在
下一篇
变更文件存储等级