![]() |
|
|||||
| Справка по программе Shasoft Synh
![]() ВведениеДанная программа была создана для обновления сайта с локального жесткого диска на FTP хостинг-провайдера. Также она будет полезна для создания резервной копии ваших файлов на удаленном FTP-сервере. НастройкиДля выполнения синхронизации необходимо указать:
Дополнительно имеется возможность настроить маски для исключения файлов. При установке галочки "История изменений" файлы на FTP сервере не будут удаляться, а будет создана папка по названию файла и в ней будут создаваться версии файлов с именами файлов дата/время. При указании архиватора указанные файлы будут упакованы для экономии места. В папке scripts можно определить скрипт, функции в котором будут вызываться на определенном этапе синхронизации. Демонстрационный пример scripts/demo.vbs '-----------------------------------------------------------------------------' Вызывается перед началом синхронизации Function OnBefore(pcPath,ftpUrl,ftpPath) ' pcPath - исходная локальная папка ' ftpUrl - ссылка на FTP (с логином и паролем) ' ftpPath - папка на FTP сервере MsgBox("OnBefore: " & pcPath & "=>" & ftpUrl & ftpPath) ' Установить код возврата = ИСТИНА ' Если код возврата не будет ИСТИНА, то дальнейшая обработка прервется OnBefore = True End Function '----------------------------------------------------------------------------- ' Вызывается после окончания синхронизации Function OnAfter(pcPath,ftpUrl,ftpPath) ' pcPath - исходная локальная папка ' ftpUrl - ссылка на FTP (с логином и паролем) ' ftpPath - папка на FTP сервере MsgBox("OnAfter: " & pcPath & "=>" & ftpUrl & ftpPath) End Function '----------------------------------------------------------------------------- ' Вызывается в случае ошибки: связь с FTP преравалась во время синхронизации Function OnCancel(pcPath,ftpUrl,ftpPath) ' pcPath - исходная локальная папка ' ftpUrl - ссылка на FTP (с логином и паролем) ' ftpPath - папка на FTP сервере MsgBox("OnCancel: " & pcPath & "=>" & ftpUrl & ftpPath) End Function В скрипте можно использовать объект для работы по протоколу HTTP. В примере ниже перед тем как выполнять синхронизацию происходит запрос главной страницы поисковой сисстемы Yandex http://ya.ru. Синхронизация начинается только в случае, если указанная страница доступна. Демонстрационный пример scripts/demoHttp.vbs ' Создать объект для работы с HTTPSet oHTTP = CreateObject("Shasoft.HTTP") '-------------------------------------- Function OnBefore(pcPath,ftpUrl,ftpPath) ' pcPath - исходная локальная папка ' ftpUrl - ссылка на FTP (с логином и паролем) ' ftpPath - папка на FTP сервере ' Сбросить настройки в стандартные oHTTP.Reset() ' Запросить страницу по HTTP If oHTTP.Request("http://ya.ru") then ' Проверить, что код ответа = 200 If oHTTP.GetLastCode() = 200 then ' Установить код возврата = ИСТИНА OnBefore = True End If End If ' Установить код возврата = ЛОЖЬ OnBefore = False End Function Также в ваших скриптах вы можете использовать любые другие объекты ActiveX. В программе имеется штатный ActiveX компонент для работы по протоколу FTP. Однако долгое время использования программы привели меня к мысли, что его наличие особо не требуется, поэтому описание его функций не и примеры работы пока отсутствуют. Возможно в дальнейшем я это исправлю. Как это работает у меняВ данном разделе я опишу как данная программа работает у меня. Я использую синхронизхатор для обновления моего PHP-движка на FTP моего хостинг-провайдера. Наличие функций обратного вызова позволило мне настроить программу таким образом, что обновление движка происходит просто при вызове проекта. При этом обновляются не только исходные файла, но и структура БД. Перед обновлением я запускаю локалюную копию http-сервера. При синхронизации в функции обратного вызова OnBefore я вызываю скрипт на локальном http-сервере, который сохраняет структуру локальной БД в файл. После чего происходит синхронизация файлов на FTP. При этом файл со структурой БД также отправляется на удаленный FTP. После выполнения синхронизации я в функции OnAfter вызываю скрипт на сайте в Internet-е. Этот скрипт получает текущую структуру БД, сравнивает её со структурой локальной БД (которая была закачена на FTP сервер при синхронизации) и если имеютсся различия в структуре, то происходит модификация структуры на хостинге со структурой на локальной версии. На самом деле, конечно, процесс синхронизации в реальности несколько сложней, т.к. приходится решать некоторые частные задачи типа максимального времени работы скрипта на хостинге, но в целом весь процесс проходит именно так, как я и описал. | |||||