Какую вы используете структуру для хранения изображений?
но я собираюсь хранить не только оригинал, а ещё 200, 400 px width cloudinary.comмало опыта, только придумал вот такое, а именно по дате например /p/2016/12/03/23/45/12/имя.jpg не надо изобретать велосипед
md5 от имени файла + соль какая-нибудь
получаем что то типа 2cb126f9bd4e36cc8818183c785879d7.jpeg
далее пишем скрипт который создает нужное кол-во уровней:
 /i/150x100/2/c/b/2cb126f9bd4e36cc8818183c785879d7.jpeg
На, вот моя приблуда для генерации$directory_generator = new Krugozor_Utility_Upload_DirectoryGenerator(/* имя загруженного файла */);

// создали директорию в THUMBNAIL_150x100...
$directory = $directory_generator->create(DOCUMENTROOT_PATH . Krugozor_Registry::getInstance()->UPLOAD['THUMBNAIL_150x100']);

// отресайзили...
$creator = Krugozor_Thumbnail_Factory::create(
	DOCUMENTROOT_PATH . Krugozor_Registry::getInstance()->UPLOAD['THUMBNAIL_ORIGINAL'] . $upload->getFileNameWithExtension(), 
	$directory . $upload->getFileNameWithoutExtension()
);
$creator->setResizedWidth(150);
$creator->setResizedHeight(100);
$creator->resizeFixed();

// http-путь до картинки
$this->getView()->path_to_image = $directory_generator->getHttpPath() . $creator->getFileNameWithExt();
можно по хэшу из файла сделать уникальную структуру и уникальное имя