+  HandyCache форум
|-+  Главная категория» Новые предложения» Структура кэша. Можно ли усовершенствовать?
Имя пользователя:
Пароль:
Страниц: [1] 2 3  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Структура кэша. Можно ли усовершенствовать?  (Прочитано 35543 раз)
0 Пользователей и 1 Гость смотрят эту тему.
tea
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« : 05 ноября 2007, 18:38:47 »

Можно ли сделать так, чтобы HandyCache сохранял в кэше домены третьего и более уровней как папки?

Например, сейчас у меня есть папка dia.sf.net, а надо чтобы было: sf.net\dia\

На крайний случай можно ли использовать домены как папки, т.е. net\sf\dia\ и т.п.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #1 : 05 ноября 2007, 20:03:19 »

Можно ли сделать так, чтобы HandyCache сохранял в кэше домены третьего и более уровней как папки?

Можно через список "Преобразование URL".

Например, вот такое простое правило:
#5#~#True#~#^([^/]+)\.([^./]+\.[^./]+)#~#\2/\1#~#False#~#True
ставит домен 3 и выше уровня после имени сайта, т.е.: 
dia.sf.net/aaa/pic.gif  станет  sf.net/dia/aaa/pic.gif
domen4.dia.sf.net/aaa/pic.gif  станет  sf.net/domen4.dia/aaa/pic.gif

Если хочешь сделать домен 4 и выше уровней тоже отдельными папками, то доделай правило по аналогии.


Вообще, в теме "Алгоритм преобразования URL в имя файла в кэше" уже обсуждалось нечто похожее в плане встраивания подобного алгоритма в будущие версии HC...
Сообщить модератору   Записан
tea
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #2 : 06 ноября 2007, 03:09:50 »

А как же 68.183.62.55 ?
Такие адреса должны сохраняться как есть.

Вообще, хотелось бы какой-нибудь универсальности, так как сейчас, насколько я понял, для адресов с разным количеством доменов придётся писать отдельные правила.

P.S.:
В RegExp не силён — аналогию для четвёртого домена, придумывал весь вечер, но до сих пор не пойму как работает.
Поэтому, если возможно то, что прошу, дайте сразу правило.  Смущен
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #3 : 06 ноября 2007, 22:06:47 »

Вставь в "Преобразование URL" вместо того правила вот эти два подряд в указанном порядке:

#5#~#True#~#^(([^./]+)\.)?(([^./]+)\.)?(([^./]+)\.)?(([^./]+)\.)?([^./]+)\.([^./]+\.[^./\d]+)/#~#\10/\9/\8/\6/\4/\2/#~#False#~#True

#5#~#True#~#//+#~#/#~#False#~#False


Обрабатывает домены до 7-го уровня включительно. IP в URL не трогает.
« Последнее редактирование: 08 декабря 2007, 13:04:10 от DenZzz » Сообщить модератору   Записан
tea
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #4 : 08 ноября 2007, 03:11:57 »

Спасибо!  Отлично!
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #5 : 08 ноября 2007, 11:26:35 »

dia.sf.net/aaa/pic.gif  станет  sf.net/dia/aaa/pic.gif

А если на сайте sf.net уже есть папочка dia ?
Возникнет каша. Надо чтобы преобразование было взаимно-однозначным. Чтобы по файлу в кэше было возможно узнать его URL.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #6 : 08 ноября 2007, 12:54:27 »

Возникнет каша. Надо чтобы преобразование было взаимно-однозначным. Чтобы по файлу в кэше было возможно узнать его URL.

tea просил отдельные папки - он их получил!

Вероятность совпадения имени домена и папки в URL не велика. Обратное преобразование требуется не всем! Кроме того, при использовании списка "Преобразование URL" обратное преобразование часто однозначно не обратимо!

А при желании простой правкой правила, приведенного выше, можно папки доменов в кэше помечать каким-нибудь спец.символом...
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #7 : 08 ноября 2007, 13:42:16 »

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

Изначально хотелось прогонять через список преобразования не URL а собственно путь к файлу. Тогда это было бы более мощным инструментом по управлению местом хранения данных. Жаль что автору не понравилась эта идея.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #8 : 08 ноября 2007, 19:40:24 »

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

Я бы сказал, вероятность стремится к нулю! Есть реальные примеры таких совпадений и вылезших потом глюков?

В любом случае у пользователя всегда есть выбор отказаться от необратимых преобразований простым отключением списка "Преобразование URL"...

Цитировать
Изначально хотелось прогонять через список преобразования не URL а собственно путь к файлу. Тогда это было бы более мощным инструментом по управлению местом хранения данных.

Чем не устраивает текущая функциональность? Есть  реальная необходимость в "более мощных инструментах"?
Сообщить модератору   Записан
tea
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #9 : 08 ноября 2007, 20:03:43 »

Сергей, Вы не поверите, но мне совпадение имени папки и домена очень полезно.
Вопрос возник после того, как я однажды залез в папку кеша. HD у меня большой, кеш чищу редко — по настоящему ещё ни разу, поэтому там я увидел там «миллион» папок *.imgshake.com или что-то подобное.
В самой же папке img386.imgshake.com находится папка img386 (тот самый случай, о котором вы предупреждаете), а в ней только один файл, такое же в папке-домене img431.*.*, и т.д. (там кажется лежат аватары с какого-то часто посещаемого мною форума).
По второму разу закачивать этот хлам совсем не хочется, а если он перезатрётся — я не заплачу.

У меня HC работает как именно для кеша, чтобы не тянуть лишнего с интернета, поэтому обратное преобразование адреса мне ещё ни разу не понадобилось, сохранять полную структуру сайта сильной надобности также не возникало.
Вариант же, что в домене dia.sf.net будет лежать file1, и файл с другим содержимым, но с таким же именем лежит по адресу sf.net/dia/ для меня всё равно кажется меньшим злом, так как при новой организации кеша, я могу зайти папку домена, и уже там искать то, что когда читал, скачивал, а сейчас кроме того, что это было в новостях mail.ru уже ничего другого не помню.
Раньше приходилось искать по всему кешу…

Одно только уточнение: важно ли, в каком месте списка стоят эти правила — в конце или в начале? (Просто, вот это ваше «(?<=/)/» меня сильно настораживает — я не понимаю что оно делает  Непонимаю)
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #10 : 08 ноября 2007, 23:45:40 »

я увидел там «миллион» папок *.imgshake.com или что-то подобное.

Для отбрасывания этого и подобного мусора в дефолтных списках давно существует правило:

#5#~#True#~#^(galler(ies|y)|im?a?(ge?s?)?|(f|ph)ot(ki|os?)|pi(cs?|x)|tbn|www)\d+\.(?!.{2,4}/)#~##~#False#~#True

Поставь его в начало списка "Преобразование URL".

Цитировать
В самой же папке img386.imgshake.com находится папка img386

Если не добавишь правило выше, то тогда у тебя в кэше будет 2 папки img386:  imgshake.com\img386\img386\...

Цитировать
Одно только уточнение: важно ли, в каком месте списка стоят эти правила — в конце или в начале?

Да. Порядок правил в списке "Преобразование URL" имеет значение, поэтому я всегда указываю в каком порядке вставлять правила и куда!
Сообщить модератору   Записан
tea
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #11 : 09 ноября 2007, 00:56:32 »

Дефолтные списки я не трогал — это правило у меня стоит третьим, но img*.img*.com всё-таки присутствовали.

Два новых правила сейчас стоят последними.

Цитировать
в кэше будет 2 папки img386:  imgshake.com\img386\img386\...

Для меня это не принципиально, главное что в папке самого кеша этих папок не будет. Так их удалять легче.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #12 : 09 ноября 2007, 09:53:02 »

Дефолтные списки я не трогал — это правило у меня стоит третьим, но img*.img*.com всё-таки присутствовали.

То правило должно резать домены 3-го уровня вида img<число> ! Возможно, эти папки в кэше появились у тебя еще до добавления третьего правила...
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #13 : 09 ноября 2007, 13:33:33 »

Есть  реальная необходимость в "более мощных инструментах"?
Например раскидывать разные сайты или типы файлов в разные папки на нескольких дисках, а не пихать все в одну большую папку кэша. Например, сделать чтобы файлы mp3 сохранялись не в папке кэша а сразу на диск с музыкой.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #14 : 10 ноября 2007, 08:01:28 »

Одно только уточнение: важно ли, в каком месте списка стоят эти правила — в конце или в начале?
При твоей организации кэша этому комплексному правилу для правильной работы должно предшествовать правило, обрезающее номер порта. Убедись, что это так.
Сообщить модератору   Записан
tea
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #15 : 15 ноября 2007, 02:04:01 »

Накопилось немного статистики, поэтому…

Сейчас у меня появилось много дополнительных папок с именем «~».
Например: адрес «http://cоmmunity.lj.com/ru_jabber» сохраняется в папке «lj.com\community\~\ru_jabber\». Я так понимаю, что где-то остаётся лишний «слэш».
Оба правила, которые мне предложили, записаны как есть — подряд и стоят в конце списка «Преобразование URL».

Где и что мне исправить/добавить и т.п.?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #16 : 15 ноября 2007, 08:46:24 »

Где и что мне исправить/добавить и т.п.?

Совсем забыл, что в версии 0.98b1 есть баг в работе опции "Заменить все" и в проверке необязательных правил... У меня-то в бета-версии оба правила работают как надо...

В общем, для совместимости с версией 0.98b1 замени 2-е правило на такое:

#5#~#True#~#//+#~#/#~#False#~#False
Сообщить модератору   Записан
Valeri614
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #17 : 25 августа 2008, 09:54:42 »

Вставь в "Преобразование URL" вместо того правила вот эти два подряд в указанном порядке:

#5#~#True#~#^(([^./]+)\.)?(([^./]+)\.)?(([^./]+)\.)?(([^./]+)\.)?([^./]+)\.([^./]+\.[^./\d]+)/#~#\10/\9/\8/\6/\4/\2/#~#False#~#True

#5#~#True#~#//+#~#/#~#False#~#False


Обрабатывает домены до 7-го уровня включительно. IP в URL не трогает.

всё замечательно работает!! Только как бы исключения сюда добавить, дабы, к примеру bash.org.ru складывался папку bash.org.ru, а не org.ru?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #18 : 25 августа 2008, 12:06:37 »

Только как бы исключения сюда добавить

Проще всего через "Белый список".
Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #19 : 25 октября 2009, 01:55:35 »

Всем привет.

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

Нынешняя структура кэша представляется мне неоптимальной. Я бы предпочел структуру вида:

Код:
http://www.ru-board.com/   -> d:\cache\ru-board.com\
http://forum.ru-board.com/ -> d:\cache\forum.ru-board.com\
заменить на такую:

Код:
http://ru-board.com/       -> d:\cache\com\ru-board\www\
http://forum.ru-board.com/ -> d:\cache\com\ru-board\forum\

И чем дальше, тем больше мне видится выгод в таком переходе. Это, в частности, снизит потребность в чистке кэша. Кажется здесь тот самый случай, когда дерево лучше списка.



Вопрос: возможно ли этого добиться штатными средствами HC?

А если нет, то не примет ли автор к рассмотрению?
« Последнее редактирование: 25 октября 2009, 01:59:42 от mirny » Сообщить модератору   Записан
Страниц: [1] 2 3  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: