/**
  * add Image
  *
  * @param Response $response
  * @param Image    $image
  * @param string   $galleryId
  * @param string   $imageSize
  */
 private function addImage(Response $response, Image $image, $galleryId, $imageSize)
 {
     if (!$image->get($imageSize)) {
         throw new NotFoundException(sprintf('file with size "%s" not found', $imageSize));
     }
     $href = $image->get($imageSize)->getHref();
     $file = new FileInfo($image->getTitle() . '(' . $imageSize . ')', $this->getDriverId(), $image->getUpdateAt()->getTimestamp(), $galleryId);
     $file->setMime('image/jpeg');
     $file->setTmb($image->get($this->driverOptions['thumbSize'])->getHref());
     $file->setUrl($href);
     $file->setPath($href);
     $response->addFile($file);
 }
 /**
  * copy dir and all inside
  *
  * @param Response $response
  * @param string   $target
  * @param string   $dst
  * @param string   $newFolder
  */
 private function copyDir(Response $response, $target, $dst, $newFolder = '')
 {
     $folder = trim(strrchr($target, DIRECTORY_SEPARATOR), DIRECTORY_SEPARATOR);
     $newFolder = $newFolder ?: $dst . DIRECTORY_SEPARATOR . $folder;
     if (file_exists($newFolder)) {
         throw new ExistsException(sprintf('folder "%s" exists', $newFolder));
     }
     mkdir($newFolder);
     $response->addAdded($this->getFileInfo($newFolder));
     foreach (glob($target . '/*') as $name) {
         if (is_dir($name)) {
             $this->copyDir($response, $name, $newFolder);
         } else {
             $filename = $newFolder . DIRECTORY_SEPARATOR . pathinfo($name, PATHINFO_BASENAME);
             copy($name, $filename);
             $response->addAdded($this->getFileInfo($filename));
         }
     }
 }