上传对象
功能说明
上传单个对象到指定桶中。
方法定义
ObsClient.putObject
请求参数
字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
Bucket | String | 必选 | 桶名。 |
Key | String | 必选 | 对象名。 |
RequestDate | String 或 Date | 可选 | 指定请求时间。 说明: 当为String类型时,必须符合ISO8601或RFC822规范。 |
ACL | String | 可选 | 创建对象时可指定的预定义访问策略。 |
StorageClass | String | 可选 | 创建对象时可指定的对象的存储类型。 |
Body | String | 可选 | 待上传对象的内容。 |
SourceFile | File 或 Blob | 可选 | 待上传的文件(浏览器必须支持FileReader)。 |
ProgressCallback | Function | 可选 | 获取上传进度的回调函数。 说明: 该回调函数依次包含三个参数:已上传的字节数、总字节数、已使用的时间(单位:秒)。 |
Offset | Number | 可选 | 当设置了SourceFile时有效,代表源文件中某一分段的起始偏移大小,默认值为0, 单位为字节。 |
Metadata | Object | 可选 | 待上传对象的自定义元数据。 |
WebsiteRedirectLocation | String | 可选 | 当桶设置了Website配置,该参数指明对象的重定向地址。 |
Expires | Number | 可选 | 待上传对象的生命周期,单位:天。 |
SuccessActionRedirect | String | 可选 | 上传对象成功后的重定向的地址。 |
ContentType | String | 可选 | 待上传对象的MIME类型,常见的contentType(MIME)列表参见配置、编辑、查看对象元数据。 |
ContentLength | Number | 可选 | 当设置了SourceFile时有效,代表待上传对象数据的长度。 |
ContentMD5 | String | 可选 | 待上传对象数据的MD5值(经过Base64编码),提供给OBS服务端,校验数据完整性。 |
SseKms | String | 可选 | 以SSE-KMS方式加密对象,支持的值:
|
SseKmsKey | String | 可选 | SSE-KMS方式下加密的主密钥ID,可为空。 密钥ID获取方法请参见查看密钥。 |
SseC | String | 可选 | 以SSE-C方式加密对象,支持的值:
|
SseCKey | String | 可选 | SSE-C方式下加密的密钥,该密钥需要您自定义,并由256bit的密钥经过base64编码得到。 |

- 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加密方式下使用的KMS主密钥的ID值。密钥ID获取方法请参见查看密钥。 |
SseC | String | SSE-C方式的算法。 |
SseCKeyMd5 | String | SSE-C方式下加密使用密钥的MD5值,该值用于验证密钥传输过程中是否出错。 |
代码样例
obsClient.putObject({
Bucket : 'bucketname',
Key : 'objectkey',
Metadata:{meta1:'value1', meta2:'value2'},
Body : 'Hello OBS',
ContentType: 'text/plain'
},function (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);
}
}
}); 
