/**
  * Test read block
  *
  * @throws Error\Unreadable
  * @return void
  */
 public function testReadBlock()
 {
     $this->assertEquals(substr(self::TEST_DATA, 2, 2), $this->object->readBlock(2, 2));
 }
Example #2
0
 /**
  * 上传单个文件块
  * @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;
 }