PomanoB / lsse

Serelex - lexico-semantic search engine
19 stars 6 forks source link

Статическое отображение картинок #36

Closed alexanderpanchenko closed 7 years ago

alexanderpanchenko commented 11 years ago

Проблема

  1. Если jpg.to падает, то серелекс не может отображать картинки.
  2. Низкая скорость отображения картинок т.к. нужно делать много вызовов к стороннему сервису даже при небольшом количестве пользователей.

    Решение

Нужно написать скрипт, который бы сохранил локально все картинки соответствующие словам в базе данных серелекса. Далее данные слова нужно сохранить в папке и получать к ним доступ как к статическим файлам с соответствующими именам. При этом, логика отображения картинки должна быть такой:

  1. Попытка отобразить статическую картинку.
  2. Если отображение не удалось (картинки нет или при другой проблеме) тогда обращение к jpg.to
jgc128 commented 11 years ago

Поставил заливаться на CDN Windows Azure картинки для английских слов. Залилось уже около 9000 картинок, доступ к ним возможен по ссылке

http://az416668.vo.msecnd.net/en-m/672055

где последнее число - номер слова.

Расположение узлов CDN

alexanderpanchenko commented 11 years ago

Отлично! Спасибо!

alexanderpanchenko commented 11 years ago

Cудя по url-у ты используешь в качестве названия картинки числовой идентификатор, верно?

Следует использовать для ясности и простоты отладки в качестве названия картинки соотв. слово, например cat.png или dog.jpg

jgc128 commented 11 years ago

Cудя по url-у ты используешь в качестве названия картинки числовой идентификатор, верно?

Да

Следует использовать для ясности и простоты отладки в качестве названия картинки соотв. слово, например cat.png или dog.jpg

Тогда будет проблема в соответствии слова и имени файла - cat.jpg или cat.png, так как в jpg.to встречаются самые разные картинки. Хотя можно, конечно, перекодировать их в jpeg и заливать уже в одном формате

alexanderpanchenko commented 11 years ago

Может добавлять расширение как последние три буквы в конец? Cat-jpg и тп

jgc128 commented 11 years ago

Не, проблема в том, что известно только само слово и его id. Но как определить, какой формат картинки соттветствет этому слову, какой формировать адрес - http://az416668.vo.msecnd.net/en-m/cat.jpg или http://az416668.vo.msecnd.net/en-m/cat.png

Поэтому можно или вообще без расширения, или перекодировать все в jpeg, тогда будет однозначный адрес - все картинки в jpg, http://az416668.vo.msecnd.net/en-m/cat.jpg

alexanderpanchenko commented 11 years ago

Может тогда все в png перегнать? Или это будет слишком сложно тебе?

jgc128 commented 11 years ago

Ну можно в png, попробую тогда.

alexanderpanchenko commented 11 years ago

ok, отлично! держи меня в курсе!

jgc128 commented 11 years ago

Поставил заливаться картинки с перекодированием в пнг

alexanderpanchenko commented 11 years ago

ok, хорошо

alexanderpanchenko commented 11 years ago

Привет, как прогресс с закачкой? Удалось ли закачать и переконвертировать все картинки?

jgc128 commented 11 years ago

Наконец-то загрузились все картинки для английских слов :) Но пока просто в формате png, без сжатия до 64px

Ставить на загрузку французские?

alexanderpanchenko commented 11 years ago

Отлично, спасибо! Но почему 64? Мы же говорили о 128! Да ставь и перекодируй французские тоже.

Сколько получилось всего картинок и сколко они весят?

jgc128 commented 11 years ago

Сколько всего сложно сказать, там нельзя узнать число элементов в контейнере. Весят в среднем около 100Кб, есть 30Кб, есть 40Мб

Ок, будет 128.

alexanderpanchenko commented 11 years ago

On 06/25/2013 04:44 PM, Alexey Romanov wrote:

Сколько всего сложно сказать, там нельзя узнать число элементов в контейнере. Весят в среднем около 100Кб, есть 30Кб, есть 40Мб

Ок, будет 128.

— Reply to this email directly or view it on GitHub https://github.com/PomanoB/lsse/issues/36#issuecomment-19973224.

40 мб это круто! :-)

alexanderpanchenko commented 11 years ago

поступил важный комментарий от Ольги М.

следует сохранять ссылку на исходное расположение картинки для соблюдения хоть какого-нибудь копирайта

сохранять можно просто в виде соответствия (лога) id.png --> url

alexanderpanchenko commented 11 years ago

текущую версию можно без этого заюзать, но потом нужно будет перезапустить прогон и сгененерировать лог

затем в названии картинки (допустим в alt=) можно указывать url

jgc128 commented 11 years ago

А так ли нужно указывать url в alt? Можно действительно сохранять Url в лог-файл, а если еще и хранить соответствие картинка-url, то все значительно усложнится - понадобится бд и тд. А так можно просто написать: "Все изображения были сохранены с помощью сервиса jpg.to, адреса, с которых производилась загрузка приведены в файле таком-то" - и дать ссылку на лог-файл из 700К строк)))

Правда, если ввести игровую составляющую, то БД так или иначе все равно понадобится, к тому же надо будет сохранять несколько вариантов картинок :(

alexanderpanchenko commented 11 years ago

Да, так лучше. Я имею ввиду -- дать ссылку на файл. Однако нужно тога чтобы все изображения имели имена по которым их можно было бы найти в логе.

Да, для игровой составляющей нужна будет отдельная табличка в БД, но ведь она уже есть... Поэтому не вижу проблемы.

Все равно для игры нужна будет отдельная страничка. Подобная страничке подобная страничке Images, но где бы у нас показывалось бы слово и 3-4 картинки описывающие его.

On 06/27/2013 03:42 PM, Alexey Romanov wrote:

У так ли нужно указывать url в alt? Можно действительно сохранять Url в лог-файл, а если еще и хранить соответствие картинка-url, то все значительно усложнится - понадобится бд и тд. А так можно просто написать: "Все изображения были сохранены с помощью сервиса jpg.to, адреса, с которых производилась загрузка приведены в файле таком-то" - и дать ссылку на лог-файл из 700К строк)))

Правда, если ввести игровую составляющую, то БД так или иначе все равно понадобится, к тому же надо будет сохранять несколько вариантов картинок :(

— Reply to this email directly or view it on GitHub https://github.com/PomanoB/lsse/issues/36#issuecomment-20112827.