Гид по технологиям

Как быстро отправлять файлы с помощью transfer.sh

4 min read Инструменты Обновлено 03 Jan 2026
transfer.sh — быстрый обмен файлами через терминал
transfer.sh — быстрый обмен файлами через терминал

Что такое transfer.sh?

transfer.sh — это бесплатный сервис для быстрого и простого обмена файлами через командную строку. Вы загружаете файл с помощью команды curl или вызываете удобную shell‑функцию, и получаете ссылку для скачивания. Работает в Linux, а также в Windows 10/11 через WSL (Linux bash).

Ключевые особенности:

  • Нет графического интерфейса — только терминал.
  • Поддержка файлов до 10 ГБ.
  • Файлы удаляются автоматически через 14 дней.
  • Возможность предварительного шифрования с помощью GPG.
  • Опции: ограничение числа скачиваний и времени доступности.

Скриншот процесса обмена файлами через transfer.sh

Быстрая отправка файла через cURL

cURL — утилита командной строки для передачи данных по сети. Чтобы загрузить файл на transfer.sh, выполните простую команду:

curl --upload-file  https://transfer.sh

Замените на путь к вашему файлу. После завершения команда вернёт URL для скачивания.

Загрузка файла через transfer.sh с помощью curl

Вы можете указать имя файла в URL, тогда загруженный файл будет именоваться иначе на стороне сервера:

curl --upload-file  https://transfer.sh/

Например, переименование hello.txt в test.md заставит ссылку предлагать скачивание test.md.

Страница скачивания transfer.sh с предложением файла для загрузки

Чтобы ограничить число загрузок и срок хранения, добавьте HTTP‑заголовки Max-Downloads и Max-Days:

curl -H "Max-Downloads: 5" -H "Max-Days: 7" --upload-file  https://transfer.sh/

Пример заголовков Max-Downloads и Max-Days в команде curl

Удобная shell‑функция для частого использования

Если вы регулярно отправляете файлы, можно завести функцию в вашем .bashrc или .zshrc, чтобы заменить длинную команду одним словом.

Вставьте в конец ~/.bashrc или ~/.zshrc следующую (как в исходной статье) функцию:

transfer(){ if [ $# -eq 0 ];then echo "No arguments specified.\nUsage:\n transfer \n ... | transfer " >&2;return 1;fi;if tty -s;then file="$1";file_name=$(basename "$file");if [ ! -e "$file" ];then echo "$file: No such file or directory" >&2;return 1;fi;if [ -d "$file" ];then file_name="$file_name.zip" ,;(cd "$file"&&zip -r -q - .)|curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null,;else cat "$file"|curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null;fi;else file_name=$1;curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null;fi;}

После добавления перезапустите оболочку (source ~/.bashrc или откройте новый терминал). Тогда команда transfer <файл> отправит файл и вернёт ссылку.

Важно: исходная функция в статье содержит символы и запятые, вставлённые в одну строку. Ниже — улучшенная и читабельная версия shell‑функции, которую можно использовать сразу (альтернатива):

transfer() {
  if [ $# -eq 0 ]; then
    echo "Нет аргументов.\nИспользование:\n transfer <файл|директория>\n или: cat файл | transfer <имя_на_сервере>" >&2
    return 1
  fi

  if tty -s; then
    file="$1"
    if [ ! -e "$file" ]; then
      echo "$file: файл или каталог не найден" >&2
      return 1
    fi

    if [ -d "$file" ]; then
      file_name="$(basename "$file").zip"
      (cd "$file" && zip -r -q - .) | curl --progress-bar --upload-file - "https://transfer.sh/$file_name"
    else
      file_name=$(basename "$file")
      cat "$file" | curl --progress-bar --upload-file - "https://transfer.sh/$file_name"
    fi

  else
    # Нет tty — читаем из stdin
    file_name="$1"
    curl --progress-bar --upload-file - "https://transfer.sh/$file_name"
  fi
}

Эта версия корректно обрабатывает каталоги (запаковывает их в zip) и потоковый ввод.

Иллюстрация shell‑функции transfer для терминала

Когда transfer.sh подходит, а когда нет

  • Подходит для быстрого одноразового обмена файлами. Если нужно временно поделиться большим файлом с коллегой — идеальный вариант.
  • Не подходит как постоянное хранилище. Файлы удаляются через 14 дней.
  • Для высокочувствительных данных используйте локальное шифрование (GPG) перед загрузкой.

Совет: для приватных данных зашифруйте файл локально:

gpg --symmetric --cipher-algo AES256 --output secret.gpg secret.txt
curl --upload-file secret.gpg https://transfer.sh/secret.gpg

Получатель должен знать пароль для расшифровки.

Альтернативные подходы

  • Облачные диски (Google Drive, Dropbox, OneDrive) — подходят для долговременного хранения и совместной работы.
  • SCP/SFTP — обмен файлами между серверами по SSH (подходит для автоматизированных рабочих процессов внутри инфраструктуры).
  • Peer-to-peer утилиты (Resilio Sync, Syncthing) — для синхронизации без стороннего сервера.

Ментальная модель: используйте transfer.sh как “передаточную станцию” — быстро передать и забыть. Для хранения и контроля доступа используйте облако или ваш собственный файловый сервер.

Безопасность и конфиденциальность

  • transfer.sh хранит файлы временно, но доступ по ссылке — публичный, если вы не шифруете содержимое.
  • Всегда шифруйте личные и корпоративные данные перед загрузкой.
  • Для соответствия GDPR хранение на сторонних сервисах требует оценки обязанностей контролёра/обработчика данных.

Краткие рекомендации по защите:

  • Шифруйте локально (GPG) перед отправкой.
  • Ограничивайте число загрузок и срок доступности через заголовки.
  • Не публикуйте ссылки в публичных каналах.

Быстрый набор (cheat sheet)

  • Загрузка файла:
    curl --upload-file /path/to/file https://transfer.sh
  • Переименование на сервере:
    curl --upload-file /path/to/file https://transfer.sh/имя.расширение
  • Ограничение по скачиваниям и дням:
    curl -H "Max-Downloads: 3" -H "Max-Days: 7" --upload-file file https://transfer.sh/file
  • Шифрование перед отправкой:
    gpg -c --cipher-algo AES256 file && curl --upload-file file.gpg https://transfer.sh/file.gpg

Критерии приёмки

  • Команда curl возвращает URL загрузки.
  • Ссылка реально доступна и предлагает скачивание указанного файла.
  • Ограничения Max-Downloads/Max-Days применены (проверить скачивания).
  • При использовании GPG получатель может расшифровать файл с предоставленным паролем.

Часто задаваемые вопросы

Можно ли загружать каталоги?

Да. Вариант с shell‑функцией упаковывает каталог в zip и отправляет его.

Как долго хранятся файлы?

По умолчанию — до 14 дней. Можно сократить срок с помощью заголовка Max-Days (если сервер это поддерживает).

Насколько безопасно хранить пароль в командной строке?

Не храните пароли открытым текстом в командной строке или скриптах. Лучше вводить пароли вручную или использовать менеджеры секретов.


Подводя итоги: transfer.sh отлично подходит для быстрого обмена файлами из терминала без настройки инфраструктуры. Для конфиденциальных или долговременных данных используйте шифрование и/или облачные сервисы.

Краткое резюме:

  • Быстро: одна команда — и файл доступен.
  • Временно: хранилище до 14 дней.
  • Безопасность: шифруйте важные файлы.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство