![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Гость_Alex |
|
|||
|
Unregistered |
Не подскажете как отследить обновление архивов?
Периодическая закачка с помощью LWP и сравнение размеров файлов не подойдет... (Архивы могут быть достаточно большими) Можно ли как-нибудь получить время модификации архива? |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Что ты подразумеваешь под словом архив???
Это сообщение отредактировал(а) korob2001 - 22.5.2005, 09:42 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Гость_Alex |
|
|||
|
Unregistered |
*.zip
*.rar На данный момент меня интересуют файлы указанных форматов. Хотя вопрос можно и обобщить. В общем случае это может относиться и к фаилам *.mp3 и т.д (размеры которых в среднем от 500К и выше). Маленькие файлы, в крайнем случае, можно периодически заливать к себе и сравнивать размеры старого и нового. Хотя это тоже не самый лучший выход. А как поступить с большими файлами (меня интересуют файлы до 5 метров)? Здесь начинаешь ценить время с учетом последующей обработки и ограничения на время работы скрипта. Плюс (возможно) оплата трафика. Тогда уж точно часто закачивать большие файлы не получится... |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Попробуй это:
В переменной будет сохранено время в секундах с начала эпохи, последней модификации файла. Это сообщение отредактировал(а) korob2001 - 22.5.2005, 23:01 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Гость_Alex |
|
|||
|
Unregistered |
Я так уже пробовал
Так можно отследить только время модификации своих файлов (на своем компе или в домене, если запустить там же скрипт) А мне надо узнать время модификации файлов независимо от того, где они лежат... Может, правда, я что-то не так делаю, но
ничего не выдает |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Хех
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Гость_Alex |
|
||||||
|
Unregistered |
В принципе ведь можно посмотреть время модификации файлов, если загружать их не в лоб, а, например, указав в строке адреса браузера только путь к папке. Разумеется, если доступ открыт. Значит должно быть возможно получение этого времени программно.
Хочу сделать что-то вроде сборника прайс-листов. Вернее работа уже идет. Теперь понемногу оптимизирую код.
Наверняка есть. Только я до него пока не дошел. Причем есть по крайней мере один сайт по такой же тематике. Там ребята размахнулись не по-детски. Уже пару лет как с этим работают. У меня запросы поскромнее - немного другие планы на это, но как знать |
||||||
|
|||||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
http://host.ru/struct/archive/ Это ещё не значит что ты обращаешься к каталогу, просто сервер настроен так, что когда ты указываешь такой путь, то запускается определённый скрипт, который тебе и выдаёт информацию. Это делается как правило, что бы скрыть пути такого вида: http://host.ru/struct/erchive/archive.pl?id=021242&sid=1245145633&act=show Причины для такого сокрытия могут быть разные. Вобщем папка не вернёт тебе время обновления архивов, которые находятся в ней. Или я тебя не допонял или ты не допояснил задачи.
Т.е. ты грузишь архивы на сервер. Наверное для того, что бы потом можно было их как-то оттуда скачать??? Если да, то ты должен их как-то выводить, например в html код, где юзер может нажать на ссылку и скачать архив. Как правило, это делает программа написанная на серверном языке: Perl, PHP, ASP и т.д. Вот она, при генерации ссылок пусть и узнаёт время последнего обновления архива и выдаёт его на той же странице. Или я опять не верно понимаю??? -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| Sadok |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Я думаю, wget (возможно curl, не работал с ним) спасет отца русской демократии. Тут же надо анализировать ответы серера (Last-modified, например)
Это сообщение отредактировал(а) Sadok - 24.5.2005, 08:48 |
|||
|
||||
| wladk |
|
|||
|
Unregistered |
Пример из книги
Network Programming with Perl http://www.modperl.com/perl_networking/
Делает, помоему, то что тебе надо, закачивает документ с сервера на локальную машину, если только документ на серверее имеет более позднюю дату изменения, чем локальный. |
|||
|
||||
| Гость_Alex |
|
||||
|
Unregistered |
Если указать данный путь, выдается что-то вроде Name Last modified Size Description -------------------------------------------------------------------------------- Parent Directory 12-May-2005 06:22 - f1.htm 18-May-2005 08:00 22k f10.htm 18-May-2005 08:00 24k f11.htm 18-May-2005 08:00 24k .................................................................
Я гружу их на сервер, потом парсю и оставляю в *.csv формате для запросов пользователей... На счет последующих советов - большое спасибо, попробую, может что-нибудь да выйдет... Если нет, еще раз к Вам обращюсь |
||||
|
|||||
| Гость_Alex |
|
|||
|
Unregistered |
На счет первого совета:
Скорее всего не спасет Я еще с ним не возился, хотя судя по возможностям (сегодня просмотрел документацию) полезная программка. Однако есть два нюанса: 1) при проверке обновления он сравнивает дату сохраненного файла и закачиваемго. Таким образом необходимо у себя держать архивы. А их размеры сопоставимы с размерами полученных после обработки *.csv-файлов. Если архивов немного, тогда без разницы, в противном случае..... 2) Т.к. это прайс-листы, то имена архивов бывает, что совпадают (например, price.zip). При этом их придется размещать по разным папкам, а это лиший напряг. Его тоже, в принципе, можо решить, но должно же быть более тривиальное решение!!! Может, правда, не нашел того, что нужно, но остается надеяться на второй вариант, хотя сходу он не пошел. Ждите завтра с новыми вопросами либо с положительным результатом |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
При загрузке на сервер, генерируй новое имя архиву, и избавишься от проблемы указанной во втором пункте.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Гость_Alex |
|
|||
|
Unregistered |
Пробовал еще вчера вечером, но в оношении wget я так и не нашел - позволяет ли он изменять имя файла. Однако по крайней мере это позволяет сделать приведенный выше перловский код. Таким образом, в итоге на одну проблему меньше. Однако другая проблема осталась: при проверке обновления происходит сравнение дат сохраненного файла и закачиваемго. А следовательно, как я выше говорил, удваивается потребляемое пространство, что на определенном этапе все равно потребует решения!!! Как тут ни крути! Вопрос остался вопросом, хотя кое-какие продвижения все-таки есть |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Гость_Alex - ну ты и намутил воды.
Я нифига не врубаюсь в смысл всего этого. Вот как я тебя понимаю: Есть некоторый хост, на который кто-то заливает архивы, так же он ( кто-то ) может проматривать список архивов и скачивать их. Я тебя правильно понимаю??? Или эти архивы разбросаны по сети??? Это сообщение отредактировал(а) korob2001 - 27.5.2005, 06:50 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Гость_Alex |
|
|||
|
Unregistered |
Эти архивы разбросаны по сети. Я сам их заливаю и обрабатываю. И мне, чтоб лишний раз не заливать, нужно просто проверять время модификации.
Впрочем возможно часть впросов будет снята, если зайти на http://price.ubd.ru Правда это первоначальный вариант: для поисковиков более-менее оптимизирован, а до дизайна пока руки не доходят |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Извини, краток буду. У меня через 15 минут поезд. Посмотри этот код:
Удачи. Это сообщение отредактировал(а) korob2001 - 27.5.2005, 07:53 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Гость_Alex |
|
|||
|
Unregistered |
Спасибо, сегодня попробую
Сейчас самому собираться надо |
|||
|
||||
| Sadok |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
|
||||
|
|||||
| Гость_Alex |
|
|||
|
Unregistered |
1)
На счет wget - я немного сглупил. Видел эту опцию, но когда обкатывал программу вместо -О поставил -о, что соответствует записи в логфайл. Долго разбираться не стал, т.к. указанная выше проблема хранения на серваке архивов все равно не решалась, а предложенный в следующем сообщении перловский код, в принципе, делал тоже самое. 2)
Работает!!! Спасибо!!! Большое спасибо всем за советы!!! Удачи. |
|||
|
||||
| Гость_Alex |
|
|||
|
Unregistered |
Это опять я. Ларец оказался с сюрпризами. Возникла новая проблема, вернее я только что на нее наткнулся С помощью последнего из приведенных перловских кодов не всегда удается определить время модификации файлов Вот пару примеров: 1) "http://www.voil.ru/price.zip" 2) не удается получить время модификации php-шных файлов, хотя можно визуально увидеть это время, если указать строке адреса браузера путь папки, в которой они лежат (за исключением корневого каталога) Вторая проблема меня, в принципе, не интересует. Ее привел для полноты картины. Возможно они как-то связаны. А как быть с первой??? |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Просто таким кодом мы обрабатываем заголовок, который нам возвращает сервер на запрос. Некоторые сервера не делают этого.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Гость_Alex |
|
||||
|
Unregistered |
Это я понял, как только ты выслал мне код. За него еще раз спасибо, он мне здорово помог!
Может быть и так, а может и не совсем: 1) Например, у меня есть файл - "http://price.ubd.ru/raznoe/firmi.php" Если подставить этот URL в тот код, то мы ничего не получим, хотя, если указать адрес папки, где лежит файл "firmi.php", то можно увидеть время модификации... Возможно это из-за php-шного расширения 2) В отношении "http://www.voil.ru/price.zip"??? Где подколка не знаю. Здесь есть один нюанс, который я не совсем хорошо познал, поэтому пока сваливаю на него-это автоматическая переадресация (возможно реализованная разработчиком). Так, например, ели указать "http://www.voil.ru/html/", меня автоматически выбрасывает на главную страницу. Возможно высказанное предположение - полный бред, но пока я в этом не разобрался, такой вариант остается... Еще немного повожусь. Если не получится, оставлю до лучших времен. Благо таких подводных камней немного |
||||
|
|||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |