Тест FTP с Node и JavaScript
Сценарий для проверки доступности FTP-соединения с сервером и возможности вызова удаленных команд.
Проверка FTP подходит для проекта Node, который требует использования FTP для обмена файлами между локальным компьютером и сервером, на взаимном или выделенном хостинге.
Сценарий использует модуль jsftp и не работает в асинхронном режиме. Во-первых, проверяется возможность подключения к команде stat. Она возвращает ошибку, если сервер не может выполнить подключение или отклоняет его.
Если соединение установлено, пробуется другая команда, считывается дата последнего изменения файла, имя и путь к которому указывается.
Сценарий можно будет редактировать для тестирования других команд, исчерпывающий список возможных команд можно прочитать в файле jsftp.js.
Сценарий выполняется следующей командой:
node testftp.js paramètres
Необходимы следующие параметры:
-l suivi du login
-p suivi du mot de pass
-f suivie de l'URL dans le protocole FTP.
nom de fichier avec chemin complet à partir de la racine du dossier public.
Пример
node testftp.js -lnom -pxxxxxx -fftp.example.com www/monfichier.html
Исходный код сценария:
var JSFtp = require("jsftp")
function main(argc,argv)
{
processCommand(argc, argv.slice(1))
OPTIONS={"host":server,"port":21,"user":user,"pass":pass,"debugMode":true}
var connection = new JSFtp(OPTIONS);
console.log("Checking FTP on "+ server)
connection.raw.stat(function(err, data) {
if(err) {
console.log("Server not available through FTP. Error:" + err)
return
}
console.log("Server OK.")
console.log("Checking date of " + filename)
connection.raw.mdtm(filename, function(err, data) {
if(err) {
console.log("Date not returned. Error: " + err)
return
}
console.log("Date/Time: " + data.text.substr(4))
console.log("Data returned:")
console.log(JSON.stringify(data))
connection.raw.quit(function(err, data) {
console.log("Bye!")
process.exit(1)
})
})
})
}
main(process.argv.length-1,process.argv.slice(1))
Загрузить полный сценарий:
Перед запуском сценария (npm install jsftp) не забудьте установить jsftp.