2016-01-15 1 views
0

Я использую модуль node-ssh2 для копирования файлов на удаленные серверы. В общем, у меня нет возможности изменять по умолчанию umask на серверах. Но мне нужен режим удаленного файла 0666 после его копирования.Node.js: файл SCP и сохранение разрешений

Если я установил его сначала локально, а затем просто запустил scp -p <localfile> <remote>, он отлично работает, сохраняя разрешение 0666. Как это сделать с node.js? Я попытался использовать node-ssh2 и начать сеанс sftp. Затем я делаю sftp.fastPut, но разрешения всегда установлены на сервере 0644.

Как я уже сказал, я сейчас использую модуль node-ssh2, и я хотел бы придерживаться этого, но если мне нужно использовать что-то другое, это нормально.

ответ

0

Укажите его в качестве аргумента опции для fastPut:

sftp.fastPut('local_path', 'remote_path', { mode: 0666 }, callback); 
+0

Я попробовал это, и это не работает. Кажется, что режим не является вариантом для fastPut. https://github.com/mscdex/ssh2-streams/blob/master/SFTPStream.md –

+0

@SeanLynch О, мой плохой. Извините, я удалю этот ответ за минуту, если не найду подходящего решения для его редактирования. – Paulpro

+0

Не беспокойтесь. Я думал, что это тоже сработает. Я также попробовал 'sftp.createWriteStream (, {mode: 0666})'. Функция 'createWriteStream' * * принимает параметр режима, но он получает переопределение сервера и заканчивается как 0644. –