Как быстро отправлять файлы с помощью transfer.sh
Что такое transfer.sh?
transfer.sh — это бесплатный сервис для быстрого и простого обмена файлами через командную строку. Вы загружаете файл с помощью команды curl или вызываете удобную shell‑функцию, и получаете ссылку для скачивания. Работает в Linux, а также в Windows 10/11 через WSL (Linux bash).
Ключевые особенности:
- Нет графического интерфейса — только терминал.
- Поддержка файлов до 10 ГБ.
- Файлы удаляются автоматически через 14 дней.
- Возможность предварительного шифрования с помощью GPG.
- Опции: ограничение числа скачиваний и времени доступности.

Быстрая отправка файла через cURL
cURL — утилита командной строки для передачи данных по сети. Чтобы загрузить файл на transfer.sh, выполните простую команду:
curl --upload-file https://transfer.sh Замените
Вы можете указать имя файла в URL, тогда загруженный файл будет именоваться иначе на стороне сервера:
curl --upload-file https://transfer.sh/ Например, переименование hello.txt в test.md заставит ссылку предлагать скачивание test.md.
Чтобы ограничить число загрузок и срок хранения, добавьте HTTP‑заголовки Max-Downloads и Max-Days:
curl -H "Max-Downloads: 5" -H "Max-Days: 7" --upload-file https://transfer.sh/ Удобная 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) и потоковый ввод.
Когда 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 дней.
- Безопасность: шифруйте важные файлы.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone