У меня есть задача развернуть некоторые таблицы стилей на сервере с использованием FTP, и примерно в 80% случаев я получаю эту ошибку,
Error: write EPIPE
at _errnoException (util.js:1022:11)
at WriteWrap.afterWrite [as oncomplete] (net.js:880:14)
Я использую винил-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 (Explicit AUTH TLS). Я не уверен, что это вызывает проблему, но я попытался отловить ошибку и добавить событие onerror в process.stdout, но ни один из них не работает. Когда ошибка возникает, он загружает на мой сервер пустой файл.
Было бы здорово найти решение для этого или, еще лучше, другого FTP-пакета.
Изменить 1: Я в Windows.
У меня была такая ошибка, когда сервер был переполнен и некуда было писать файлы



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы используете rsync для синхронизации локального сервера и сервера с подключением по SSH. https://www.tecmint.com/rsync-local-remote-file-synchronization-commands/
Должен был быть более конкретным, я на Windows.
В конце концов, я сказал, что винт, и поменял, какой модуль я использовал. узел-ftp вызывает ошибку EPIPE только в 5% случаев по сравнению с исходными 80%. Вы также можете поймать ошибку, которая полезна, потому что я поймаю ее и снова попытаюсь загрузить файл.
Вы пробовали parallel: 3 или что-то меньше 10, чтобы посмотреть, поможет ли это? И conn.newer, чтобы избежать ненужных загрузок? Может немного улучшить производительность. Я использую винил-ftp и никогда не получаю эту ошибку, и обычно я передаю до 60 файлов за раз.