Пофайлшарим?

Надо скинуть файлик кому-то другому. Только и слышим, что «Залей на рапиду», «Кинь на депозитфайлз»… Ну зачем вам эти монстры? Подожди минуту, залей, подожди минуту, введи капчу, скачай.

Сегодня узнал о таком сервисе — http://up.k10x.net/. Проще не придумать — просто шарит файлы. Без регистрации, без рекламы. Хранят 60 дней. Если ниче секретного (а что ж секреты через файлошары передает?!) — то пойдет. Ограничение — до 5 мб.

Поскольку большую часть жизни я провожу в консоли — решил написать скрипт, который был позволил шарить файл без браузера вообще. Основной инструмент — curl. API у сервиса можно сказать отсутствует — надо просто послать POST-запрос с данными формы. Вот скрипт:

URL="http://up.k10x.net/"

k10x_upload() {
	# Нет, после решетки - это не коментарий
	curl -# -q -F "file=@$1" -F "submit=Upload" $URL -o - \
		| sed -n -e 's/.*<a href=.\+\?>\(.*\)<\/a>.*/\1/p'
}

if [ $# -lt 1 ]; then
	echo "Usage: $(basename $0) file1 [file2 ...]"
	exit 1
fi

if ! which curl > /dev/null; then
	echo "Error: 'curl' not found!"
	exit 1
fi

for f in "$@"; do
	if [ ! -f "$f" ]; then
		echo "$f is not a file!"
		exit 1
	fi
	k10x_upload "$f"
	if [ $? -ne 0 ]; then
		echo "Failed to upload $f"
		exit 1
	fi
done

В скрипте перебираем аргументы командной строки, для каждого файла вызываем curl, который отправляет данный файл на сервер. Приходящую в ответ ссылку выводим на экран с помощью sed. Поскольку в ответ приходит только один тег <a href=…>, то sed ищет его, вырезает у него срединку и печатает на консоль.
Используются следующие опции curl: -# — использовать простой индикатор прогресса (как у wget), -q — не читать конфиг-файл, -F — отправить данные формы: сначала файл, потом пару «ключ=значение». Последняя опция — направляет вывод в stdout.

Пользоваться легко:

$ k10x-upload 09\ Arnold\ Layne.mp3
######################################################################## 100.0%
http://up.k10x.net/qybleemasrxkm/09 Arnold Layne.mp3

Если найдете ошибки — сообщайте, репозиторий лежит на http://bitbucket.org/zserge/k10x-upload.
Пользуйтесь на здоровье!

Реклама

4 comments on “Пофайлшарим?

  1. Анонимный Круглик:

    Мне нравится. imageshack sucks.
    Правда, на название файла ?a=hello&b=world! скрипт выдает вот такую url: http://up.k10x.net/fykvrkdtyukab/?a=hello&b=world!
    А браузер на все это безобразие пишет 404: The requested URL /fykvrkdtyukab/ was not found on this server.
    Но с другой стороны, какому дураку в голову придет такое название файла?

  2. Анонимный Круглик:

    Боюсь, что http://up.k10x.net/ сейчас лежит. Вместе с ним опочивает и веб-форма. Подожду до конца тихого часа

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s