Как прочитать файл с диска, если его возраст меньше X дней, если старше, повторно загрузить файл html - PullRequest
1 голос
/ 24 декабря 2010

Я хочу прочитать html-файл из Интернета и кэшировать его. Затем, когда я возвращаюсь, потому что я отлаживаю, я не хочу забивать серверы многочисленными запросами, которые мне понадобятся. Я не хочу, чтобы мой IP был забанен за то, что он снова и снова сбивал сервер только потому, что я отлаживал. Поэтому мой код должен выглядеть примерно так:

if ((file > days_old) || !(file exists))
   fetch html file from internet
   save file to disk
else
   read it from the disk

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

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

Спасибо!

1 Ответ

4 голосов
/ 24 декабря 2010

Использовать существующий модуль:

Если вы действительно хотите реализовать свой собственный, вам нужно взглянуть на If-Modified-Since и ETag заголовки HTTP , чтобыопределите, когда нужно повторно извлечь файл, а не произвольное число days_old, которое вы высосете из большого пальца.Вам также потребуется сгенерировать уникальное имя файла, желательно с хеш-функцией, сохранив при этом исходный URL-адрес для обработки коллизий хеш-функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...