上传段
功能说明
初始化分段上传任务后,通过分段上传任务的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方式下加密的密钥,该密钥需要您自定义,并由256bit的密钥经过base64编码得到。 |

- 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加密方式下使用的KMS主密钥的ID值,为空则默认配置为默认密钥。密钥ID获取方法请参见查看密钥。 |
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 () );
} 
