Полгода назад команда Яндекса анонсировала на Хабре консольный клиент своего облачного хранилища под Linux. Установка его сводится к добавлению репозитория и первоначальному конфигурированию с авторизацией и указанием папки для локальной копии файлов. Детально процесс описан на официальном сайте.
Несмотря на просьбы хабролюдей к разработчикам выпустить что-то гуёвое, реализации до сих пор нет. Будем исправлять ситуацию самостоятельно.
Для начала определимся с имеющимся и недостающим функционалом.
Консольный клиент уже умеет синхронизировать директории на локальный диск (выборочно или все содержимое Я.Диска) и генерировать публичную ссылку на указанные файлы с помощью команды yandex-disk publish ‘путь/до/файла’.
Было бы неплохо упростить получение ссылки на общедоступные файлы и интегрировать клиент в оконный менеджер системы (в моем случае Ubuntu 12.04 и Nautilus 3.4.2).
Итак, добавим в контекстное меню Nautilus кнопку «Опубликовать», по нажатию на которую будет происходить вышеупомянутое действие получения ссылки. Полученную ссылку положим в буфер обмена (как это делает клиент Я.Диска для Windows), а также укажем на это пользователю с помощью всплывающего сообщения.
- Создаем в удобном месте файл скрипта (например, я делаю это с помощью Терминала (Ctrl+Alt+T)):
mcedit /home/xandros/YD_publish.sh
- Вставляем туда следующий текст:
#!/bin/bash
#Делаем yandex-disk publish для выбранного файла
#И кладем результат (ссылка или ошибка) в переменную var
var=`yandex-disk publish "$1" 2>&1`#Выводим значение переменной стандартными средствами Linux
#Необходимо изменить путь до картинки на свой
notify-send -i /usr/share/pixmaps/xandros/YD_logo.png "Яндекс.Диск" "$var"#Кладём переменную (ссылка или ошибка :-D) в буфер обмена
echo "$var" | parcellite - Делаем его исполняемым:
chmod +x /home/xandros/YD_publish.sh
- Устанавливаем менеджер буфера обмена Parcellite (можно выбрать любой другой по вкусу (например Clipit), лишь бы работало, в скрипте соответственно изменить последнюю строку)
sudo apt-get install parcellite
- Устанавливаем Nautilus-Actions Configuration Tool:
sudo apt-get install nautilus-actions
- Находим в Dash только что установленный пакет
- Создаем новое действие «Опубликовать»
- По желанию указываем путь до картинки, тогда около нашего пункта в контекстном меню появится иконка. В качестве иконки можно взять эту (она же указана у меня в исполняемом скрипте выше):
- Переходим на вкладку «Command» и указываем путь до скрипта, который был создан вначале, в качестве параметров необходимо передавать в скрипт путь до файла, поэтому пишем в соответствующее поле %F
- Сохраняем действие и перезапускаем Nautilus с помощью Терминала
nautilus -q
- Ищем новый пункт меню и проверяем его работу
Ссылки: