Ошибка: пишите EPIPE при попытке загрузить файл на FTP, используя gulp - PullRequest
0 голосов
/ 27 июня 2018

У меня есть задача развернуть некоторые таблицы стилей на сервере по FTP, и примерно в 80% случаев я получаю эту ошибку,

Error: write EPIPE
  at _errnoException (util.js:1022:11)
  at WriteWrap.afterWrite [as oncomplete] (net.js:880:14)

Я использую vinyl-ftp для загрузки файла, как показано в коде здесь,

var conn = ftp.create({
    host: 'host',
    user: 'user',
    password: 'pass',
    parallel: 10,
    idleTimeout: 10000,
    reload: true,
    secure: true,
    secureOptions: {rejectUnauthorized: false},
    log: gutil.log
});

// What files to transfer over (can be used in case there are more files to be uploaded in the future)
var globs = [
    localDir + '/' + jobName + 'Default.css'
];

gutil.log("Local File: " + globs[0]);

var remoteDir = '/' + environment + '/css/' + clientName + '/' + jobName;

gutil.log("Remote Dir: " + remoteDir);

return gulp.src(globs, {buffer: false}).pipe(conn.dest(remoteDir));

Сервер, на который я загружаю, использует FTP-SSL (явный AUTH TLS). Я не уверен, что именно это является причиной проблемы, но я попытался отловить ошибку и добавить событие onerror в process.stdout, но ни один из них не работает. Когда ошибка отключается, она загружает пустой файл на мой сервер.

Было бы здорово найти решение для этого или, что еще лучше, другого пакета FTP.

Редактировать 1: Я на Windows.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Наконец только что сказал, прикрути его и изменил, какой модуль я использовал. node-ftp только выдает ошибку EPIPE примерно в 5% случаев по сравнению с исходными 80%. Вы также можете поймать ошибку, которая полезна, потому что я ловлю ее и пытаюсь снова загрузить файл.

0 голосов
/ 27 июня 2018

Вы используете rsync для синхронизации локального и сервера с настройкой SSH https://www.tecmint.com/rsync-local-remote-file-synchronization-commands/

...