更新时间:2024-05-15 GMT+08:00

上传对象

功能说明

上传单个对象到指定桶中。

方法定义

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类型。

ContentLength

Number

可选

当设置了SourceFile时有效,代表待上传对象数据的长度。

ContentMD5

String

可选

待上传对象数据的MD5值(经过Base64编码),提供给OBS服务端,校验数据完整性。

SseKms

String

可选

以SSE-KMS方式加密对象,支持的值:

  • kms

SseKmsKey

String

可选

SSE-KMS方式下加密的主密钥,可为空。

SseC

String

可选

以SSE-C方式加密对象,支持的值:

  • AES256

SseCKey

String

可选

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加密方式下使用的KMS主密钥的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);
              }
       }
});