Я использую tramp через ssh для доступа к удаленным файлам. Для текстовых файлов это работает очень хорошо, но всякий раз, когда я хочу скопировать большие удаленные файлы на мой локальный компьютер, tramp использует медленный встроенный метод (кодирование файла с помощью gzip). Это намного медленнее, чем использование внешнего метода, такого как, например, scp. Как заставить emacs использовать scp при передаче больших файлов?
Релевантная информация:
Я использую файл ~ / .ssh / config для доступа к удаленной машине. Псевдоним для этой машины hehi09 в следующем. Доступ без пароля
Сообщения в буфере сообщений при передаче:
Copying /ssh:hehi09:/home/christian/big_file.dat to /home/christian/big_file.dat'... Tramp: Inserting `/ssh:hehi09:/home/christian/big_file.dat'... Tramp: Encoding remote file `/ssh:hehi09:/home/christian/big_file.dat' with `(gzip <%s | base64)'...
Значения:
значение tramp-copy-size-limit равно 10240 (намного меньше, чем проверенный размер файла)
Значение tramp-default-method равно "scp"
$ scp hehi09:/home/christian/big_file.dat ~/
работает как и ожидалось из командной строки и намного быстрее, чем передача в emacs
Есть идеи, почему emacs не использует scp для копирования больших файлов? Любая помощь с благодарностью!
scp
ваш метод по умолчанию. Даже тогда Tramp копирует небольшие файлы с помощьюssh
, а большие файлы с помощьюscp
. Вы можете настроить лимит черезtramp-copy-size-limit
./scp:host:/path/to/file
или/ssh:host:/path/to/file
.Потому что вы должны установить это в
~/.emacs
файл. Несмотря на это, Emacs является текстовым редактором, а не клиентом SFTP или FTP, он использует этуbase64
кодировку в то время,ssh
когда он слишком медленный для передачи файлов.источник
ssh
вы правы в том, что происходитbase64
конверсия, которая медленна для больших файлов. Однако, если вы используетеscp
это не так. Emacs хорошо способен выполнять команды, которые не имеют отношения к «тексту». Наконец, не дайте пользователям Emacs понять, что их любимая ОС - это текстовый редактор;)scp
иbase64
преобразование продолжалось. Было бы замечательно, если бы это не произошло, как только это, вероятно, было бы основным приложением для соединений SFTP. Хотя он используется в качестве основного текстового редактора и файлового менеджера.scp
методом, безbase64
конвертации, повернув его быстрее.scp
чтобы не использоватьbase64
кодировку. Не могли бы вы быстро рассказать, в чем проблема в вашем случае, если кто-нибудь заглянет сюда в будущем?TRAMP
dired
соединение было открыто черезssh
, затем выполняласьscp
команда, которая выполнялаbase64
преобразование. При запуске иTRAMP
dired
соединения, и самой команды копирования как сscp
методом, он игнорировалbase64
преобразование и делал быстрее.