/** * Test read block * * @throws Error\Unreadable * @return void */ public function testReadBlock() { $this->assertEquals(substr(self::TEST_DATA, 2, 2), $this->object->readBlock(2, 2)); }
/** * 上传单个文件块 * @param $index : 文件块索引, 从0开始 * @param File $file * @param array $data: 附加参数,可选 * @return mixed */ public function blockUpload($index, $file, $data = array()) { $startPosition = $index * $this->blockSize; $endPosition = $index >= $this->blocks - 1 ? $file->getSize() : $startPosition + $this->blockSize; $fileBlock = $file->readBlock($startPosition, $endPosition); $hash = md5($fileBlock); $metaData = array('save_token' => $this->saveToken, 'expiration' => $this->expiration, 'block_index' => $index, 'block_hash' => $hash); $metaData = array_merge($metaData, $data); $postData['policy'] = $this->signature->createPolicy($metaData); $postData['signature'] = $this->signature->createSign($metaData, false); $postData['file'] = array('data' => $fileBlock); $result = UpyunMultiPartPost::post($postData, $this->api . $this->bucketName . "/"); $result = $this->parseResult($result); return $result; }