Вы правы @ojb. Я также застрял в аналогичной позиции, когда хотел, чтобы мой готовый код готовился онлайн, используя глоток в качестве части моего автоматизированного рабочего процесса.
В принципе нет стандартного параметра для передачи как ssh_key_location в gulp-rsync
. Поэтому обходным путем является использование файла конфигурации ssh для создания локального псевдо-хоста . Этот процесс маскирует фактическое имя хоста с псевдоним хоста .
(ec2-xx-xxx-xxx-xxx.ap-west-2.compute.amazonaws.com + ключ) => hostname.com
Поскольку нет надлежащего документации о том, как решить эту проблему здесь подробно, как сделать для всех, кто может столкнуться этот вопрос
Первый шаг: Update ~/.ssh/конфигурационный файл, чтобы сделать эту работу: $ ssh hostname.com
Host hostname.com
HostName ec2-xx-xxx-xxx-xxx.ap-west-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/<path-to-file>/keyfile.pem
Второй шаг:
Добавьте это в функцию глотком
// Dirs and Files to sync
rsyncPaths = ['directory-names', './file-name',....];
// Default options for rsync
rsyncConf = {
progress: true,
incremental: true,
relative: true,
emptyDirectories: true,
recursive: true,
clean: true,
exclude: [],
};
Третий шаг: Создать следующую функцию в глотке
//something-on-top
return gulp.src(rsyncPaths)
.pipe($.rsync(rsyncConf));
Troubleshoot: 1. Проверьте, имеет ли файл 400 прав доступа 2. Проверьте, работает ли $ ssh hostname.com