上传对象
功能说明
上传单个对象到指定桶中。
ObsClient的对象相关操作接口函数均支持首字母大小写,如ObsClient.putObject和ObsClient.PutObject是相同的函数。
方法定义
ObsClient.putObject
请求参数
字段名 |
类型 |
约束 |
说明 |
---|---|---|---|
Bucket |
String |
必选 |
桶名。 |
Key |
String |
必选 |
对象名。 |
ACL |
String |
可选 |
创建对象时可指定的预定义访问策略。 |
StorageClass |
String |
可选 |
创建对象时可指定的对象的存储类型。 |
Body |
String 或 stream.Readable |
可选 |
待上传对象的内容,支持字符串和stream.Readable对象。 |
Offset |
Number |
可选 |
当设置了SourceFile时有效,代表源文件中某一分段的起始偏移大小,默认值为0, 单位为字节。 |
SourceFile |
String |
可选 |
待上传对象的源文件路径。 |
ProgressCallback |
Function |
可选 |
获取上传进度的回调函数。
说明:
该回调函数依次包含三个参数:已上传字节数、总字节数、已使用的时间(单位:秒)。 |
Metadata |
Object |
可选 |
待上传对象的自定义元数据。 |
WebsiteRedirectLocation |
String |
可选 |
当桶设置了Website配置,该参数指明对象的重定向地址。 |
Expires |
Number |
可选 |
待上传对象的生命周期,单位:天。 |
SuccessActionRedirect |
String |
可选 |
上传对象成功后的重定向的地址。 |
ContentType |
String |
可选 |
待上传对象的MIME类型。 |
ContentLength |
Number |
可选 |
当设置了SourceFile时有效,代表待上传对象数据的长度。 |
ContentMD5 |
String |
可选 |
待上传对象数据的MD5值(经过Base64编码),提供给OBS服务端,校验数据完整性。 |
SseKms |
String |
可选 |
以SSE-KMS方式加密对象,支持的值:
|
SseKmsKey |
String |
可选 |
SSE-KMS方式下加密的主密钥,可为空。 |
SseC |
String |
可选 |
以SSE-C方式加密对象,支持的值:
|
SseCKey |
Buffer |
可选 |
SSE-C方式下加密的密钥,由AES256算法得到。 |
- Body与SourceFile不能同时使用。
- 当Body与SourceFile都为空时,上传对象的大小为0字节。
返回结果(InterfaceResult)
字段名 |
类型 |
说明 |
---|---|---|
RequestId |
String |
OBS服务端返回的请求ID。 |
ETag |
String |
对象的ETag值。 |
VersionId |
String |
对象的版本号。 |
StorageClass |
String |
对象的存储类型,当对象存储类型是标准存储时,该值为空。 |
SseKms |
String |
SSE-KMS方式的算法。 |
SseKmsKey |
String |
SSE-KMS方式的密钥。 |
SseC |
String |
SSE-C方式的算法。 |
SseCKeyMd5 |
String |
SSE-C方式的密钥的MD5值。 |
代码样例
obsClient.putObject({ Bucket : 'bucketname', Key : 'objectkey', Metadata:{meta1:'value1', meta2:'value2'}, // SourceFile : 'localfile', Body : 'Hello OBS', ContentType: 'text/plain' },(err, result) => { if(err){ console.error('Error-->' + err); }else{ if(result.CommonMsg.Status < 300){ console.log('RequestId-->' + result.InterfaceResult.RequestId); console.log('ETag-->' + result.InterfaceResult.ETag); console.log('VersionId-->' + result.InterfaceResult.VersionId); console.log('StorageClass-->' + result.InterfaceResult.StorageClass); }else{ console.log('Code-->' + result.CommonMsg.Code); console.log('Message-->' + result.CommonMsg.Message); } } });