Как автоматически делиться файлами и загружать их на совместимые хостинги
Некоторое время назад мы написали руководство по Transfer.sh, которое позволяет вам обмениваться файлами через Интернет из командной строки. Сегодня мы увидим еще одну утилиту для обмена файлами под названием Anypaste. Anypaste — это простой скрипт для автоматического обмена файлами и их загрузки на совместимые хостинги в зависимости от типа файлов. Вам не нужно вручную входить на хостинг-сайты и загружать или делиться своими файлами. Anypaste выберет правильный хостинг в зависимости от типа файла, который вы хотите загрузить. Проще говоря, фотографии будут загружены на хостинги изображений, видео — на видеосайты, код — на Pastebin. Круто, да? Вам не нужно зависеть от каких-либо тяжелых, потребляющих память приложений с графическим интерфейсом для загрузки и обмена файлами в Интернете. Anypaste — это полностью бесплатный и легкий скрипт с открытым исходным кодом, работающий в любых Unix-подобных операционных системах.
Установите Anypaste в Linux
Как я уже сказал, это всего лишь сценарий оболочки. Таким образом, никаких сложных этапов установки не будет. Просто скачайте его где-нибудь, где его можно будет запустить, например /usr/bin/, сделайте его исполняемым и сразу же начните использовать. Альтернативно вы можете запустить следующие две команды, чтобы быстро установить Anypaste.
sudo curl -o /usr/bin/anypaste https://anypaste.xyz/sh
sudo chmod +x /usr/bin/anypaste
Вот и все. Чтобы обновить старую версию Anypaste, просто перезапишите старый исполняемый файл новым.
Теперь давайте посмотрим несколько практических примеров.
Настроить Anypaste
Anypaste будет работать прямо из коробки. Никакой специальной настройки не требуется! Файл конфигурации по умолчанию — ~/.config/anypaste.conf, и он будет автоматически создан при первом запуске Anypaste.
Единственный обязательный параметр конфигурации — ap_plugins. Anypaste использует систему плагинов для загрузки файлов. Каждый хостинг (загрузочный) сайт представлен определенным плагином. Вы можете просмотреть список включенных плагинов в директиве ap-plugins в файле Anypaste.conf.
List of plugins
If there are multiple compatible plugins, precedence is determined
by which one is listed first in this array
ap_plugins=(
Videos/Gifs
'sendvid' 'streamable' 'gfycat'
Images
'tinyimg' 'vgyme'
Audio
'instaudio'
Text
'hastebin' 'ixio' 'sprunge'
Documents
'docdroid'
Any file
'jirafeau' 'fileio'
)
[...]
Если вы устанавливаете новый плагин, добавьте его в этот список. Если вы хотите отключить плагин по умолчанию, просто удалите его! Если совместимы несколько плагинов, выбирается первый в массиве, поэтому порядок имеет значение.
Делитесь файлами и загружайте их на совместимые хостинги автоматически с помощью Anypaste
Чтобы загрузить один файл, например test.png, выполните:
anypaste test.png
Пример вывода будет:
Current file: test.png
Attempting to upload with plugin 'tinyimg'
######################################################################## 100.0%
Direct Link: https://tinyimg.io/i/Sa1zsjj.png
Upload complete.
All files processed. Have a nice day!
Как вы можете видеть в приведенном выше выводе, Anypaste автоматически нашел совместимый хостинг (в данном случае https://tinyimg.io) для данного файла изображения test.png. > и загрузил в него. Кроме того, он дал нам прямую ссылку для просмотра/скачивания загруженного файла.
Вы можете загружать не только файлы .png, но и любые другие типы файлов изображений. Например, следующая команда загрузит файл file.gif:
$ anypaste file.gif
Current file: file.gif
Plugin 'streamable' is compatible, but missing config parameters: 'streamable_email' 'streamable_password'
You can set them in /home/sk/.config/anypaste.conf
Attempting to upload with plugin 'gfycat'
######################################################################## 100.0%
Reminder: Gfycat needs time to encode. Your video will not appear right away.
Link: https://gfycat.com/MisguidedQuaintBergerpicard
Direct(ish) Link: https://thumbs.gfycat.com/MisguidedQuaintBergerpicard-size_restricted.gif
Upload complete.
All files processed. Have a nice day!
Вы можете поделиться ссылкой со своей семьей, друзьями и коллегами. Вот скриншот изображения, которое я только что загрузил на сайт gfycat.
Делитесь файлами и загружайте их на совместимые хостинги автоматически с помощью Anypaste
Также возможно загрузить несколько файлов (одного и того же типа или разных) одновременно.
Посмотрите на следующий пример. В этом примере я загружаю два разных файла: изображение и видеофайл:
anypaste image.png video.mp4
Пример вывода:
Current file: image.png
Attempting to upload with plugin 'tinyimg'
######################################################################## 100.0%
Direct Link: https://tinyimg.io/i/au1PHpg.png
Upload complete.
Current file: video.mp4
Plugin 'streamable' is compatible, but missing config parameters: 'streamable_email' 'streamable_password'
You can set them in /home/sk/.config/anypaste.conf
Attempting to upload with plugin 'sendvid'
######################################################################## 100.0%
Link: http://sendvid.com/wwy7w96h
Delete/Edit: http://sendvid.com/wwy7w96h?secret=39c0af2d-d8bf-4d3d-bad3-ad37432a40a5
Upload complete.
All files processed. Have a nice day!
Anypaste автоматически нашел хостинги, совместимые с обоими типами файлов, и успешно загрузил их на соответствующие сайты.
Как вы могли заметить в приведенных выше примерах в разделе использования, Anypaste автоматически выбрал «лучший» плагин. Также вы можете загружать файлы с помощью определенного плагина. Например, чтобы загрузить файлы на сайт gfycat, выполните:
anypaste -p gfycat file.gif
Пример вывода:
Current file: file.gif
Plugin 'streamable' is compatible, but missing config parameters: 'streamable_email' 'streamable_password'
You can set them in /home/sk/.config/anypaste.conf
Attempting to upload with plugin 'gfycat'
######################################################################## 100.0%
Reminder: Gfycat needs time to encode. Your video will not appear right away.
Link: https://gfycat.com/GrayDifferentCollie
Direct(ish) Link: https://thumbs.gfycat.com/GrayDifferentCollie-size_restricted.gif
Upload complete.
All files processed. Have a nice day!
Чтобы загрузить с конкретным плагином, минуя проверки совместимости, запустите:
anypaste -fp gfycat file.gif
Если вы обнаружите, что в файле конфигурации отсутствует определенный плагин, вы все равно можете заставить Anypaste использовать этот конкретный плагин с параметром «-xp».
anypaste -xp gfycat file.gif
Чтобы загрузить файлы в интерактивном режиме, запустите его с флагом «-i»:
$ anypaste -i file.gif
Current file: file.gif
Determine compatible plugins automatically? [Y/n] n
The following plugins were found: 'sendvid' 'streamable' 'gfycat' 'tinyimg' 'vgyme' 'instaudio' 'hastebin' 'ixio' 'sprunge' 'docdroid' 'jirafeau' 'fileio'
Enter the (partial) name of a plugin, or nothing for automatic selection
gfycat
Attempt to upload with plugin 'gfycat'? [Y/n] y
Attempting to upload with plugin 'gfycat'
######################################################################## 100.0%
Reminder: Gfycat needs time to encode. Your video will not appear right away.
Link: https://gfycat.com/WaryAshamedBlackbear
Direct(ish) Link: https://thumbs.gfycat.com/WaryAshamedBlackbear-size_restricted.gif
Upload complete.
All files processed. Have a nice day!
Как видите, Anypaste сначала просит меня автоматически определить плагины. Я не хочу, чтобы плагины находили автоматически, поэтому я просто ответил «Нет». Затем он перечислил доступные плагины и попросил меня выбрать один из списка. Точно так же вы можете загружать и делиться файлами разных типов. Данные файлы будут загружены на совместимые сайты.
Всякий раз, когда вы пытаетесь загрузить видеофайл, он будет загружен на любой из следующих сайтов:
- отправитьвид
- потоковый
- gfycat
Здесь обратите внимание на порядок. Anypaste сначала попытается загрузить файл на сайт sendvid. Если плагина для sendvid нет, он попробует два других сайта в указанном порядке. Конечно, вы можете изменить это в файле конфигурации.
Изображения будут загружены по адресу:
- tinyimg.io
- vgy.me
Аудиофайлы будут загружены по адресу:
- установлен
Текстовые файлы будут загружены по адресу:
- хастебин
- ix.io
- sprunge.us
Документы будут загружены по адресу:
- докдроид
Остальные файлы будут загружены по адресу:
- Жирафо
- файл.io
Некоторые из перечисленных выше сайтов удаляют содержимое через определенный период времени. Поэтому проверьте условия использования этих веб-сайтов, прежде чем загружать и делиться контентом.
Рекомендуется к прочтению:
- PSiTransfer — простое решение для самостоятельного размещения файлов с открытым исходным кодом
- iWant – приложение командной строки для децентрализованного однорангового обмена файлами
Заключение
На мой взгляд, идея идентификации файлов для определения того, куда их загружать, действительно блестящая, и разработчик прекрасно реализовал ее в этом инструменте. Anypaste определенно будет полезен всем, кто часто обменивается файлами через Интернет. Я надеюсь, что вы тоже найдете это полезным.
Ресурсы:
- Веб-сайт Anypaste
- Страница Anypaste на GitHub