更新时间:2023-11-08 GMT+08:00
分享

修改对象元数据

功能说明

对指定桶中的对象发送PUT请求,修改对象的元数据信息。

方法定义

ObsClient.setObjectMetadata

请求参数

字段名

类型

约束

说明

Bucket

String

必选

桶名。

Key

String

必选

对象名。

VersionId

String

可选

对象的版本号。

Origin

String

可选

预请求指定的跨域请求Origin(通常为域名)。

RequestHeader

String

可选

跨域请求可以使用的HTTP头域。

MetadataDirective

String

必选

元数据操作指示符。

取值为REPLACE_NEW或REPLACE。

REPLACE_NEW表示:对于已经存在值的元数据进行替换,不存在值的元数据进行赋值,未指定的元数据保持不变。

REPLACE表示:使用当前请求中携带的头域完整替换,未指定的元数据(本表中除StorageClass的其它元数据)会被删除。

CacheControl

String

可选

指定Object被下载时的网页的缓存行为。

ContentDisposition

String

可选

指定Object被下载时的名称。

ContentLanguage

String

可选

指定Object被下载时的内容语言格式。

ContentEncoding

String

可选

指定Object被下载时的内容编码格式。

ContentType

String

可选

Object文件类型。

Expires

String

可选

请求过期时间。

Metadata

Object

可选

对象自定义元数据。

StorageClass

String

可选

指定对象的存储类型。

说明:存储类型有3种:STANDARD(标准存储)、WARM(低频访问存储)、COLD(归档存储)。因此这里可配置的值有:STANDARD、WARM和COLD,注意大小写敏感。

WebsiteRedirectLocation

String

可选

当桶设置了Website配置,可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的URL

返回结果(InterfaceResult)

字段名

类型

说明

RequestId

String

OBS服务端返回的请求ID。

MetadataDirective

String

元数据操作指示符。

取值为REPLACE_NEW或REPLACE。

CacheControl

String

指定Object被下载时的网页的缓存行为。

Content-Disposition

String

对象的ETag值。

Content-Encoding

String

对象的版本号。

WebsiteRedirectLocation

String

当桶设置了Website配置,该参数指明对象的重定向地址。

StorageClass

String

对象的存储类型,当对象存储类型是标准存储时,该值为空。

Content-Language

String

如果请求中的Origin满足桶的CORS规则,则返回CORS规则中的AllowedOrigin。

Expires

String

如果请求的AccessControlRequestHeaders满足桶的CORS规则,则返回CORS规则中的AllowedHeader。

Metadata

Object

对象自定义元数据。

代码样例

const metadata = { "test": "newmeta" };
const bucketName = 'bucketname';
const objectname = 'objectkey';

obsClient.setObjectMetadata({
       Bucket: bucketName,
       Key: objectname, 
       ContentType: 'application/zip',
       StorageClass: obsClient.enums.StorageClassStandard,
       MetadataDirective: 'REPLACE_NEW',
       Metadata: metadata
},(err, result) => {
       if(err){
              console.error('Error-->' + err);
       }else{
              if(result.CommonMsg.Status < 300){
                     console.log('RequestId-->' + result.InterfaceResult.RequestId);
                     console.log('MetadataDirective-->' + result.InterfaceResult.MetadataDirective);
                     console.log('Metadata-->' + JSON.stringify(result.InterfaceResult.Metadata));
                     console.log('StorageClass-->' + result.InterfaceResult.StorageClass);
              }else{
                     console.log('Status-->' + result.CommonMsg.Status);
              }
       }
});

相关文档