|
Языки программирования Изучаем С++, Sql, php, Lua, Python |
|
Опции темы | Поиск в этой теме | Опции просмотра |
10.04.2013, 15:38 | #1 |
Ученый
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
|
update system
Всем доброго дня... Поставил задачу себе написать update system для своей проги.
Немного подумавши решил сделать так: 1) ftp соединение; 2) Проверять каждый файл проги по байтам Но этот путь, как по мне, слишком неудобный... Мб есть у кого предложения как это реализовать по проще?
__________________
sql-language.ru |
10.04.2013, 16:14 | #2 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
вариант
|
Пользователь сказал cпасибо: | lovepsone (12.04.2013) |
10.04.2013, 16:59 | #3 |
Ученый
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
|
А без файлика никак?
__________________
sql-language.ru |
10.04.2013, 17:08 | #4 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
Ну можешь фанарно по размеру файла проверять...ну это не 100% вариант.
Что бы не качать целиком файл можно проверить либо размер файла, либо скачать маленький файл( version.txt), либо считать заголовки (версию, издателя и т.п.)в самом файле предварительно его скачав, либо запоминать последнее время модификации и запрашивать на сервере где хранится екзешник время модификации файла на сервере ( фтп, хттп и т.п.) других адекватных вариантов я не вижу. |
10.04.2013, 18:27 | #5 |
MaNGOS Dev
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
|
идеальный вариант: хранить на сервере файл с перечнем файлов вашей программы и их MD5-суммой. При попытке обновления считываете этот файл и выкачиваете только те файлы, которые появились в списке либо изменили MD5 сумму.
|
10.04.2013, 20:01 | #6 |
Ученый
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
|
А есть исходник с таким примерчиком? Как я понял нужно к каждому файлу вычислять хеш?
__________________
sql-language.ru |
10.04.2013, 20:47 | #7 |
MaNGOS Dev
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
|
Примерчик есть, хоть и не совсем удобочитаемый ( т.к. был писан давно ). Вас интересует метод DownloadWorker::ExecuteUpdaterTask() - он дает представление как работал подобный сервис обновлений через HTTP в свое время.
К сожалению, не могу найти индексный файл, который хранил информацию по файлам проекта |
2 пользователя(ей) сказали cпасибо: | lovepsone (10.04.2013), partizanes (11.04.2013) |
10.04.2013, 20:53 | #8 |
MaNGOS Dev
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
|
Как вариант есть еще схема с распространением обновлений в форме полного дистрибутива ПО ( например, инсталятор MSI или InstallShield ). Тогда вы просто выкачиваете инсталятор и запускаете стандартную установку ПО.
Известные программы типа DownloadMaster или CCleaner используют подобную схему. |
Пользователь сказал cпасибо: | lovepsone (10.04.2013) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
spline system | Mediv | Корзина | 11 | 22.03.2013 08:13 |
dynamic vmap system | rsa | Отвергнутые патчи | 1 | 04.11.2012 01:02 |
[10677] Send to creature/etc Update call real diff from last update and use it. | newsbot | CMaNGOS Commits | 0 | 03.11.2010 06:10 |
[10089] Change in event system work with pool system. | newsbot | CMaNGOS Commits | 0 | 21.06.2010 05:22 |
[10052] Camera System | newsbot | CMaNGOS Commits | 10 | 16.06.2010 02:33 |