Pull to refresh

Раскопки построения фотохостинга VK

Reading time3 min
Views11K
Нравится мне этот веб-сайт и изучать его (архитектуру) одно удовольствие. Правда сегодня, обнаружил то, что мне крайне не понравилось. А суть, собственно, в следующем:

CEO VK Павел Дуров 26 января при репосте записи команды завысил важность фотохостинга VK в 80 раз!

Смыслом данной публикации явилось моё личное исследование, результаты которого доказывают факт завышения реальной информации и раскрывают некоторые технические особенности построения фотохостинга VK.

А началось всё с того, что я решил практически подсчитать, сколько всего на данный момент добавлено фотографий в VK. Результат поразил, всего лишь ~ 280 млн, но никак не 25 млрд о которых пишет Павел.

image

Вычисляется это просто, добавляете сначала одну фотографию, затем ещё парочку в разных местах, для верного подсчёта. Фото в сообществах, публичных и личных страницах принадлежат одной и той же таблице в базе данных VK. Ранее удалённые идентификаторы используются повторно, иными словами, присваиваются вновь добавляемым фотографиям, таким образом, мы получаем цифру 278394369 фотографий добавлено в VK на 21:20 13 февраля 2012 г.

На серверах (cs*****.vk.com/) из-за боязни фрагментации жёстких дисков, естественно всех файлов в разы больше, а фотографий ровно столько, сколько есть на самом деле. Цифра эта публичная и видна в URL-адресе.

На этом можно было бы и закончить исследование, но вскрылся ещё один интересный факт.

Поигравшись встроенным просмотрщиком заметил одну немаловажную деталь. При добавлении сохраняется не только сама фотография с рядом миниатюр, но и 4 варианта поворота её и всех миниатюр в том числе. Например: 90°, 180° и 270°.

Опытным путем выяснил префиксы:
x_ — миниатюра <= 604 пикселя по ширине
y_ — миниатюра <= 807 пикселей по ширине
z_ — миниатюра <= 1280 пикселей по ширине
w_ — оригинал (при добавлении фотографий 1600х1200, 1920х1080, 5000х3328, 10000х6656 почему-то не создался)

Выявить предназначение 8-значного шестнадцатеричного числа пока не удалось. Однако, знаю точно, что это не часть md5. Доказательство на php.

<?php
echo md5_file('http://cs10887.vk.com/u10855725/-7/y_4a568d3d.jpg');
echo md5_file('http://cs10887.vk.com/u10855725/-7/y_fed4ec80.jpg');
echo md5_file('http://cs10887.vk.com/u10855725/-7/y_fa62b721.jpg');
echo md5_file('http://cs10887.vk.com/u10855725/-7/y_114336cf.jpg');
?>


Итого: 1 добавленная вами фотография равна 16 (при постинге на стену — ещё больше) файлам на сервере VK. Следовательно, слова Павла о 25 млрд файлах фотографий, включая все миниатюры могут быть и не преувеличены, но не самих фотографий, а это важно, поскольку он решил сравнить VK со специализированными фото-сервисами: Flickr, Picasa и Photobucket, да ещё и взятые вместе. Там-то как раз счётчик отображает только (уникальные) загруженные фотографии, не файлы, потому как их число будет в разы больше и тогда 25 млрд VK вообще меркнут на фоне N трлн.

Ни о каком качественном фотохостинге в VK речи быть не может. Если вспомнить, что ВКонтакте долгое время, до июня 2010 г., сохранял все фотографии только 604-пиксельными (префикс: x_) миниатюрами (кстати тогда Павел тоже отличился), то данное сравнение не то, что некорректно оно и является верхом не понимания руководством VK базовой работы специализированных фото-сервисов и счётчиков загруженных изображений к ним.

Также я делаю вывод, что VK больше не сохраняет оригинал фотографии, а все добавленные теперь уменьшает до 1280х1024 пикселей и если файл имеет расширение PNG или GIF конвертирует в JPG. Примечательно, что информация о снимке (EXIF) при добавлении, если и была записана, стирается. С какой целью?

Прошу не воспринимать эту публикацию как критику VK. Я с большим уважением отношусь к команде разработчиков и самому Павлу. Моё личное исследование не сошлось с публичными данными. Хотелось бы узнать, в чём же я ошибся или каковы причины были у руководства VK, чтобы так завышать цифры (проявлять свою некомпетентность)? Возвысится и похвастать? Ну уж, извините, не получилось.

Всего за 2006–2010 г.г. ВКонтакте добавлено ~ 205 млн, а за 2011 г. ~ 70 млн фотографий.

Бонус. vk.com работает на nginx/1.0.11. Узнать можно добавив в URL-адрес любой страницы завершающий слэш, плюс, минус, любой другой знак, даже точку или запятую и вы увидите 404 ошибку, а можно еще проще, например так: vk.com/я.

Пользователь VK, Серёжа Преловский.
Tags:
Hubs:
-19
Comments47

Articles