更新时间:2021-03-18 GMT+08:00
分享

上传段

功能说明

初始化分段上传任务后,通过分段上传任务的ID,上传段到指定桶中。除了最后一段以外,其他段的大小范围是100KB~5GB;最后一段的大小范围是0~5GB。上传的段号也有范围限制,其范围是1~10000。

方法定义

1. ObsClient->uploadPart(array $parameter)
2. ObsClient->uploadPartAsync(array $parameter, callable $callback)

请求参数

字段名

类型

约束

说明

Bucket

string

必选

桶名。

Key

string

必选

对象名。

PartNumber

integer

必选

段号,取值范围:1~10000。

UploadId

string

必选

分段上传任务的ID。

ContentMD5

string

可选

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

Body

string

resource

GuzzleHttp\Psr7\StreamInterface

可选

待上传段的内容。

SourceFile

string

可选

待上传段的源文件路径。

Offset

integer

可选

源文件中某一分段的起始偏移大小,默认值为0, 单位为字节。

PartSize

integer

可选

源文件中某一分段的大小,默认值为文件大小减去Offset的剩下字节数,单位为字节。除最后一段的大小范围是0~5GB外,其他段的大小范围是100KB~5GB。

SseC

string

可选

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

  • AES256

SseCKey

string

可选

SSE-C方式下加密的密钥,由AES256算法得到。

  • Body与SourceFile不能同时使用。
  • 当Body与SourceFile都为空时,上传对象的大小为0字节。
  • Offset、PartSize和SourceFile配套使用,用于指定上传源文件中的某一分段数据。

返回结果

字段名

类型

说明

HttpStatusCode

integer

HTTP状态码。

Reason

string

HTTP文本描述。

RequestId

string

OBS服务端返回的请求ID。

ETag

string

当前上传段的ETag值。

SseKms

string

SSE-KMS方式的算法。

SseKmsKey

string

SSE-KMS方式的密钥。

SseC

string

SSE-C方式的算法。

SseCKeyMd5

string

SSE-C方式的密钥的MD5值。

代码样例

try {
       $resp = $obsClient->uploadPart( [ 
              'Bucket' => 'bucketname',
              'Key' => 'objectkey',
              'UploadId' => 'uploadid',
              'PartNumber' => 1,
              'Body' => 'Hello OBS'
       ] );
       printf ( "RequestId:%s\n", $resp ['RequestId'] );
       printf ( "ETag:%s\n", $resp ['ETag'] );
} catch ( Obs\Common\ObsException $obsException ) {
       printf ( "ExceptionCode:%s\n", $obsException->getExceptionCode () );
       printf ( "ExceptionMessage:%s\n", $obsException->getExceptionMessage () );
}

相关文档