修改对象元数据
功能说明
对指定桶中的对象发送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); } } });