Сохранение загрузки, запущенной через SSH, в локальный файл
Выберите между локальной загрузкой через прокси и удалённым получением с последующей передачей, и держите вывод команды отдельно от байтов файла.
Запуск загрузчика через SSH и запуск локального загрузчика через удалённый прокси размещают загрузку в разных местах:
| Схема | Кто получает сайт? | Куда записывается файл |
|---|---|---|
| Локальный загрузчик через удалённый прокси | Запросом владеет локальный HTTP-клиент; прокси его переносит | Путь вывода локального загрузчика |
| Загрузчик, запущенный через SSH | Программа на удалённой машине | Его удалённый путь, если данные не передаются обратно явно |
С разрешённой учётной записью SSH и установленным удалённо curl можно вернуть артефакт через стандартный вывод:
ssh -T [email protected] 'curl --fail --silent --show-error https://downloads.example/file.bin' > file.partЗамените пример учётной записи и URL. Перенаправление находится вне удалённой команды в кавычках, поэтому локальная оболочка открывает file.part. Поместите его внутрь удалённой команды — и путь будет принадлежать удалённой среде.
Используйте свежий временный путь: локальная оболочка может создать или обрезать этот файл до того, как удалённая операция завершится успешно. Проверьте результат выхода SSH и артефакт, прежде чем давать ему окончательное имя.
Стандартный вывод должен содержать только байты артефакта. Приветствия, баннеры прогресса или сообщения обёртки могут его испортить; диагностика относится к стандартной ошибке. Удалённая команда, сохраняющая в собственное имя файла, может вообще не вернуть байты. Сохраняйте результат выхода загрузчика через любую обёртку.
Вместо этого можно сохранить удалённо и передать файл по SFTP. Если SSH уже использует помощник прокси, используйте эту запись хоста SSH повторно для передачи. Если цель — локальный рабочий процесс с прокси, оставьте загрузчик локальным и настройте поддерживаемый им интерфейс прокси.
В любом случае файл, который должен попасть на ваш ноутбук, всё равно должен пройти через его сетевое соединение. Выбор меняет соединение, обращённое к сайту, и процесс, выполняющий загрузку.