В одной из наших прошлых записей мы рассказывали об установке консольного клиента Яндекс.Диск на сервера Debian/Ubuntu. Но у консольного клиента есть существенный недостаток - отсутствие возможности очищать корзину. Несмотря на то, что добавить данный функционал пользователи просят довольно давно - воз и ныне там, поэтому будем справляться собственными силами, а поможет нам в этом REST API Диска. На первый взгляд выглядит сложно, но это сложность мнимая, тем более что мы сразу предлагаем фактически готовое решение.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Данное решение придумано не нами и достаточно давно присутствует в сети, поэтому мы сначала и не планировали публиковать его у себя, но потом решили его еще раз проверить и выпустить данный материал, чтобы вся нужная информация была размещена в одном месте.
Прежде всего нам нужно авторизоваться на Яндексе под тем аккаунтом, который используется для доступа к Яндекс.Диску. Для этого достаточно войти в любой сервис Яндекса, не обязательно Диск, можно и в Почту.
Теперь нам нужно перейти на Oauth-сервер и зарегистрировать там новое приложение для доступа к данным в сервисах Яндекса, для этого просто перейдите по ссылке: https://oauth.yandex.ru
Для приложения обязательно указываем наименование, следует сделать его информативным, чтобы вы всегда могли вспомнить, что это и для чего.
Ниже ставим галочку Веб-сервисы и нажимаем на ссылку Подставить URL для разработки, в поле Callback URL автоматически появится адрес.
Прокручиваем страницу еще ниже, до раздела Яндекс.Диск REST API и включаем в нем все опции доступа.
После чего отправляемся в самый низ страницы, где нажимаем кнопку Создать приложение, в результате вы увидите примерно следующее окно, нас здесь интересует ID-приложения, скопируйте его куда-нибудь (либо не закрывайте эту страничку).
Для того, чтобы наше приложение могло аутентифицироваться на серверах Яндекса получим токен, для этого сформируйте специальную ссылку:
https://oauth.yandex.ru/authorize?response_type=token&display=popup&client_id=ID
Где в качестве ID используйте полученное на предыдущем шаге значение. Перейдите по ней и подтвердите предоставление доступа.
После чего на экране появится длинная 40-символьная строка - ваш токен, сохраните его в надежном месте. Помните, что он дает полный доступ к вашему диску, поэтому доступ к нему следует ограничить.
Получив токен, можно переходить к написанию скрипта очистки корзины, для его работы нам понадобится curl, его можно установить командой:
apt install curl
Теперь создадим сам скрипт, его можно разместить в любом удобном месте, в нашем случае это будет /etc
touch /etc/yandex_trash
Откроем его любым редактором и внесем следующий текст:
#!/bin/bash
curl -s -H "Authorization: OAuth TOKEN" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=
где TOKEN - строка полученного вами токена.
Затем сделаем файл исполняемым:
chmod +x /etc/yandex_trash
Для проверки можно просто запустить скрипт, после чего должна произойти очистка корзины нужного аккаунта. После чего его можно вызывать по нужному расписанию с помощью cron или использовать данную конструкцию в иных скриптах.
Также данный скрипт (точнее строку с обращением к API) можно использовать и в Windows, для этого вам потребуется установить curl для Windows и указать полный путь к исполняемому файлу в скрипте (либо добавить его в переменную PATH).
По материалам: Яндекс.Диск: очистка корзины из Debian
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии