JS FTP Synchronizer - генератор статического сайта JavaScript

Работает под Node.js, запускает локальное изображение веб-сайта.

Доступна и PHP-версия той же программы: PHP FTP Synchronizer.

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

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

Решение, позволяющее использовать клонированный каталог, является быстрым и безопасным, позволяет также иметь копию, и эту папку резервного копирования желательно поместить на съемный модуль.

Эта программа JavaScript использует асинхронный фреймворк JSFtp для отправки страниц на удаленный сайт. Выполнение последовательности таких операций в асинхронном режиме - это настоящий вызов. Особенно сложно создавать папки, когда их нет, а затем размещать в них файлы, все это в разрозненном порядке, поскольку сервер выполняет операции, когда это уместно, а не по запросу.

Было найдено простейшее решение со следующим алгоритмом:

function ftpSend(src, rmt, rdir) {
    var connection = new JSFtp(OPTIONS)
    connection.put(src, rmt, function(err) {
        if (err)  {
            connection.raw.mkd(rdir, function(err, data) {
                connection.put(src, rmt, function(err) {
                    if(err) {
                        return console.log("Error, file not uploaded.")
                    }    
                    connection.raw.quit(function() {})
                    return
                });    
            });
            return
        }
        connection.raw.quit(function() {})
    });
}

Мы отправляем файл в любом случае, если происходит ошибка, предполагаем, что папки не существует, поэтому мы ее создаем. Затем снова отправим файл. Если ошибка сохранится, только тогда будет указано, что файл не может быть загружен.

Кроме того, используется async/awais для получения последовательности, когда это возможно .

Руководство по эксплуатации

Обновление сайта происходит следующей командой, которую удобнее поместить в пакетный файл:

node sync.js [options/paramètres] répsource

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

Можно добавить следующие варианты.

Пример:

node sync.js -lmonlogin -pmonmotdepasse ftp.example.com -drepdistant -bbackuplocal replocal

Загрузка и установка

Для установки программы:

  1. Извлечь содержимое из архива.
  2. Загрузите и при необходимости установите Node.js.
  3. Можно установить jsftp: npm install jsftp (он уже есть в архиве на самом деле).