Бывают случаи когда нужно передать файл достаточно большого размера, но через облако заходить муторно, и требует затрат по времени, нашёл интересный способ вот тут
https://dzen.ru/a/ZcLeiJlTzW1wUC4f , автор предложил использовать для этого
https://transfer.sh/ , а так же скрипт, но по окончанию работы его скрипта не выдаётся адрес по которому следует скачать переданный файл, либо я что-то не до понял, по этому предлагаю доработанный скрипт в который добавил возможность по окончанию работы скрипта , увидеть ссылку по которой можно этот файл скачать.
как исползовать?
нужен xsel, pv , curl
адресс сохраняется в HOME/.config/ADR
подвешиваем на комбинацию клавиш этот скрипт,копируем желаемый файл в буфер, если файл большой наслаждаемся прогресс баром, по меньше тоже но не успеваем насладится, ну и дальше файл отсылается в
https://transfer.sh получаем адрес скачивания в терминале, а также в файл по пути HOME/.config/ADR
--------------------------------------------
вот улучшеный код доработанного скрипта (спасибо k0l0p0k идеи огонь)
--------------------------------------------
#!/bin/bash
#set -x
LOG_FILE=$HOME/.config/ADR
# Проверяем, существует ли файл $LOG_FILE, и создаем его, если он не существует
[ ! -f $LOG_FILE ] && > $LOG_FILE
file_dir=$(xsel -b)
filename=$(basename "$file_dir")
mkdir -p /tmp
#tar -czvf /tmp/"$filename.tar.gz" "$file_dir"
# Создаем несжатый архив
tar -cf /tmp/$filename.tar "$file_dir"
# Отображаем прогресс сжатия
pv /tmp/$filename.tar | gzip > /tmp/$filename.tar.gz
response=$(curl --upload-file /tmp/$filename.tar.gz "https://transfer.sh/$filename.tar.gz")
echo " "
echo "-------------------------------------------------------------"
echo " "
#echo "Адрес файла: $response"
echo "Адрес файла: $response" | tee -a $LOG_FILE
echo " "
echo "-------------------------------------------------------------"
echo " "
rm /tmp/$filename.tar.gz
echo "чтоб закончить ввод"
read ex
ниже с чего начиналось тоже оставлю может кому интересно последить за развитием сюжета
$ ./trsgz <полный путь до файла>
этот создаёт zip архив
#!/bin/bash
set -x
SIZE=1000000
if [ -n "$(find "$1" -prune -size +"$SIZE"c)" ]; then
filename=$(basename "$1")
mkdir -p /tmp
zip -r /tmp/"$filename.zip" "$1"
response=$(curl --upload-file /tmp/$filename.zip "https://transfer.sh/$filename.zip")
echo "Адрес файла: $response"
rm /tmp/$filename.zip
else
filename=$(basename "$1")
response=$(curl --upload-file "$1" "https://transfer.sh/$filename")
echo "Адрес файла: $response"
fi
этот создаёт tar.gz архив
#!/bin/bash
set -x
SIZE=1000000
if [ -n "$(find "$1" -prune -size +"$SIZE"c)" ]; then
filename=$(basename "$1")
mkdir -p /tmp
tar -czvf /tmp/"$filename.tar.gz" "$1"
response=$(curl --upload-file /tmp/$filename.tar.gz "https://transfer.sh/$filename.tar.gz")
echo "Адрес файла: $response"
rm /tmp/$filename.tar.gz
else
filename=$(basename "$1")
response=$(curl --upload-file "$1" "https://transfer.sh/$filename")
echo "Адрес файла: $response"
fi
оба позволяют получить ссылку которую можно передать для скачивания . Автору скрипта спасибо, и от меня подписка и нравлик. Пост не рекламный просто понравился способ и транслирую его дальше, слегка доработав.