public function testMultipartUploadCallbackFailed()
{
$object = "multipart-callback-test.txt";
$copiedObject = "multipart-callback-test.txt.copied";
$this->ossClient->putObject($this->bucket, $copiedObject, file_get_contents(__FILE__));
/**
* step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id
*/
try {
$upload_id = $this->ossClient->initiateMultipartUpload($this->bucket, $object);
} catch (OssException $e) {
$this->assertFalse(true);
}
/*
* step 2. uploadPartCopy
*/
$copyId = 1;
$eTag = $this->ossClient->uploadPartCopy($this->bucket, $copiedObject, $this->bucket, $object, $copyId, $upload_id);
$upload_parts[] = array('PartNumber' => $copyId, 'ETag' => $eTag);
try {
$listPartsInfo = $this->ossClient->listParts($this->bucket, $object, $upload_id);
$this->assertNotNull($listPartsInfo);
} catch (OssException $e) {
$this->assertTrue(false);
}
/**
* step 3.
*/
$json = '{
"callbackUrl":"www.baidu.com",
"callbackHost":"oss-cn-hangzhou.aliyuncs.com",
"callbackBody":"{\\"mimeType\\":${mimeType},\\"size\\":${size},\\"x:var1\\":${x:var1},\\"x:var2\\":${x:var2}}",
"callbackBodyType":"application/json"
}';
$var = '{
"x:var1":"value1",
"x:var2":"值2"
}';
$options = array(OssClient::OSS_CALLBACK => $json, OssClient::OSS_CALLBACK_VAR => $var);
try {
$result = $this->ossClient->completeMultipartUpload($this->bucket, $object, $upload_id, $upload_parts, $options);
$this->assertTrue(false);
} catch (OssException $e) {
$this->assertTrue(true);
$this->assertEquals("203", $e->getHTTPStatus());
}
}