OSS\Tests\CallbackTest::testMultipartUploadCallbackNormal PHP Метод

testMultipartUploadCallbackNormal() публичный Метод

    public function testMultipartUploadCallbackNormal()
    {
        $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":"callback.oss-demo.com:23450",
            "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->assertEquals("200", $result['info']['http_code']);
            $this->assertEquals("{\"Status\":\"OK\"}", $result['body']);
        } catch (OssException $e) {
            $this->assertTrue(false);
        }
    }