LINUX.ORG.RU
ФорумTalks

Как можно ускорить просмотр фото на сетевых машинах.


0

0

Миниатюры. Локально они используются каждым вторым просмотрщиком изображений и файлмэнеджером. В кэше они есть.

А загвоздка в том, что каждая машина использует свой кэш. И это долго. До печального уныния.

Давайте придумаем кто виноват.

Предлагаешь аля венда хр срать в каждую директорию файлом Thumbs.db?
И при этом ещё и жёстко закрепить размер миниатюр?

Ramen ★★★★ ()
Ответ на: комментарий от Ramen

Я знал что подобный ответ будет! Даже заготовил грубость. Она связана с Гномом, но пока я её озвучивать не буду.

В винде это всё равно страшно медленно работает. Собственно, из-за неё и возникла такая идея.

Я предлагаю придумать каким образом можно решить эту проблему. Источник миниатюр, размер и прочее всегда можно сделать конфигурируемым.

Начнём с простого: не ясно на какой протокол ориентироваться - smb или nfs. Может специально для Линуксов сделать надстройку?

wyldrodney ()
Ответ на: комментарий от wyldrodney

>Источник миниатюр, размер и прочее всегда можно сделать конфигурируемым.
А если на разных машинах в сети размер миниатюр разный?

Ramen ★★★★ ()
Ответ на: комментарий от Ramen

Миниатюры больше 240х170 вряд ли кому-то понадобятся. Можно определить несколько размеров, подходящих под нужды юзера.

И это всяко быстрее чем 4000х3000.

wyldrodney ()
Ответ на: комментарий от wyldrodney

>Миниатюры больше 240х170 вряд ли кому-то понадобятся.
Мне.
С тягой определять за пользователей, что им понадобится, а что вряд ли, проследуй пожалуйста в сторону венды или макоси.

Ramen ★★★★ ()
Ответ на: комментарий от wyldrodney

А в чём вообще вопрос? Чтобы гляделка картинок при просмотре каталога с кучей файликов быстро показывала миниатюры? В вопросе содержится ответ. Откуда миниатюры вообще берутся? Либо генерятся на лету из файла, либо лежат где-то заранее заготовленные. Лежать могут либо в файле, если он правильного формата, либо где-то рядом. thumbs.db, ессно, вариант хреновый, т.к. файл этот может стать слишком большим, чтобы легко вытягиваться по сети. Юникс же, почему бы не генерить автоматически что-то вида .filename.jpg.120x96 ? Ну, и разрешать юзеру (если вообще разрешено ему туда писать) создавать превьюшки своего размера. Модифицировать гляделку, чтобы это понимала. Фсё.

Mess ()
Ответ на: комментарий от Mess

>Фсё.

Не всё. Кто будет генерировать миниатюры? Надо обойтись без предварительного скачивания всех картинок(в этом смысл). Нужно учитывать требования к размеру. И лучше не засорять целевую директорию самими миниатюрами.

wyldrodney ()
Ответ на: комментарий от wyldrodney

> Не всё

Всё, всё. Других вариантов, как бы, не проглядывается.

Надо обойтись без предварительного скачивания всех картинок

Ну а я тебе про что?!

Кто будет генерировать миниатюры?

Сервер. Тебе рассказать, как скриптом из нескольких строчек это делается? Так же, можно позволить и клиенту, но только при условии, что доступ на запись у него есть вообще.

Нужно учитывать требования к размеру

Учитывай. Размер миниатюр - на твой выбор, как и качество их.

И лучше не засорять целевую директорию самими миниатюрами.

Ну, не смертельно. Альтернативные варианты - засорять каталог всего одним подкаталогом, типа .thumb. Или, ещё круче, где-то рядом в сети разместить каталог, в котором дублируется структура каталогов с картинками, а содержатся там только превьюшки. В каталоге с картинками можно даже хранить урл на каталог с превьюшками (но мне это нравится меньше).

Mess ()
Ответ на: комментарий от Mess

>Всё, всё. Других вариантов, как бы, не проглядывается.

Я имел ввиду что ты недостаточно ясно описал такой подход, и всего то.

Кто будет генерировать миниатюры?

Сервер.

В итоге мы используем кэш целевой машины. Хотя можно было бы и вынести это на отдельный сервер(пусть у нас есть машина с сервисами для групповой работы).

Размер миниатюр - на твой выбор, как и качество их.

Клиентов много, и для каждого нужно учитывать требуемый размер.

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

wyldrodney ()
Ответ на: комментарий от wyldrodney

> используем кэш целевой машины

Нипонял? Откуда тут вообще кэш целевой машины? Не, никто не запретит ей скэшировать сами превьюшки, но это не обязательно и не нужно.

Клиентов много, и для каждого нужно учитывать требуемый размер.

Да. А можно не учитывать. А можно заставить клиента, если ему превьюшки нужны меньшие, чем уже имеющиеся, всё равно скачать те, что есть, и отминиатюризировать их. Всё равно выгоднее, чем генерить их из оригиналов.

генерировать миниатюры только при запросе оных из определённой директории

Стрёмно. Долго может получиться. Ресурсоёмко. Если бы сортировка файлов у клиента гарантированно совпадала с порядком генерации превьюшек, ещё бы туда-сюда (превьюшки генерятся, и клиент их подтягивает по мере), но гарантии такой нету в принципе.

Тут бы не мешало подумать о способе передачи.

ОМФГ. Какой способ передачи? Файлы же. Превьюшки предлагается делать в виде фалйов. .filename.jpg.120x96 У тебя что, гляделка включена на показ дот-файлов? А у юзверей?

Mess ()
Ответ на: комментарий от Mess

> чем генерить их из оригиналов

На стороне клиента, имеется ввиду.

Mess ()
Ответ на: комментарий от wyldrodney

> Клиентов много, и для каждого нужно учитывать требуемый размер.

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

Mess ()
Ответ на: комментарий от Mess

> Откуда тут вообще кэш целевой машины?

А! Дошло. Я предполагал именно автоматическую генерацию превьюшек на сервере. Отслеживать появление (изменение) картинки, и генерить для неё одну/несколько превьюшек.

Mess ()

Судя по тому, что thumbnail-ы сейчас хранятся с именем, вычисляемым из хэша файла, можно через какой-нибудь service-discovery просто экспортировать директорию с thumnail-ами в сеть, тогда нужно просто произвести поиск по имеющимся в сети thumbnail-ам и всё.
Но есть риск коллизий)

CyberTribe ★★ ()
Ответ на: комментарий от Mess

>Я предполагал именно автоматическую генерацию превьюшек на сервере. Отслеживать появление (изменение) картинки, и генерить для неё одну/несколько превьюшек.

Это тоже вариант. Но тут нужен демон)

Проще дописать автогенерацию превью при просмотре (как это сделано в gwenview) и копировании с носителя. Но складывать их в поддиректорию.

wyldrodney ()
Ответ на: комментарий от CyberTribe

>какой-нибудь service-discovery

А есть какие-нибудь ДЕ-независимые сервисы для этих целей?

wyldrodney ()
Ответ на: комментарий от wyldrodney

для service-discovery есть 2 сервиса сейчас: avahi и mdnsresponder, оба de-независимые, на сколько мне известно.

CyberTribe ★★ ()

Как можно ускорить просмотр фото на сетевых машинах

Купить новое оборудование и поднять общую скорость в сети :}

Andru ★★★★ ()
Ответ на: комментарий от wyldrodney

> тут нужен демон

Не обязательно. Можно тупо по крону скрипт запускать.

автогенерацию превью при просмотре

Для локального диска, ессно так лучше. Для удалённого - не айс. Это же всё равно надо вытянуть ВСЕ картинки, да ещё и залить назад превьюшки. И кто его знает, того клиента, может он накосячит при генерации превьюшек, формат использует нестандартный, с качеством продуркует, а то вообще, чтонить зловредное зальёт. Ну, хотя бы, превьюшки не будут соответствовать оригиналу, уже неплохой простор для троллинга.

Mess ()

Сделать сервер миниатюр, и отдавать миниатюры по запросу.

Black_Shadow ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.