Очистка корзины Яндекс.Диск из Debian

Дмитрий Корнев
24 января 2016

Про консольный клиент Яндекс.Диска и создание бэкапов с его помощью я уже писал. В той же статье я описывал решение, которое можно использовать вместо очистки корзины. К сожалению, оно имеет свои недостатки, поэтому теперь речь пойдёт о более правильном способе — очистке корзины через API.

Я не наблюдаю сейчас особого развития Яндекс.Диска. Даже глюки, похоже, исправляются не слишком быстро. А раз так, то ждать добавления в программу специальной команды для очистки диска можно ещё очень долго. Жаль. На мой взгляд, это было бы самым правильным решением!

Очистка корзины через API — это довольно неплохой вариант, правда, требующий дополнительных телодвижений на этапе настройки. Большое спасибо shoes-styles1 за ссылку и краткое описание действий! Далее в статье я привожу это описание в немного расширенном виде.

Приложение

Необходимо, чтобы у вас было зарегистрировано приложение на OAuth-сервере для обработки API-команд. Это приложение должно быть создано под тем же логином, который у вас задействован для Яндекс.Диска на веб-сервере.

Регистрация приложения

Заполняем поля, выбираем «Яндекс.Диск REST API» и соответствующие права.

Я выбрал все галки, хотя может нужна только одна, не разбирался.

Выбираем права для приложения

Ниже «Callback URL» заполняем автоматически и жмём «Сохранить».

Сохраняем приложение

 В результате получаем информацию по созданному приложению, где среди прочего есть ID и пароль.

Информация по созданному приложению

Токен

Теперь необходимо получить токен. Для этого вызываем следующую ссылку, где вместо YOURID подставляем ID созданного приложения.

https://oauth.yandex.ru/authorize?response_type=token&display=popup&client_id=YOURID

Подтверждаем действие:

Запрос подтверждения

Получаем новый код — это токен, который потребуется дальше. Его будем подставлять в свой API-запрос.

Скрипт

Для очистки корзины с веб-сервера на Debian удобно создать файл со скриптом.

Назовём файл, например, trash.sh. Содержимое:

#!/bin/bash
/usr/bin/curl -s -H "Authorization: OAuth YOURTOKEN" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=

Здесь вместо YOURTOKEN подставляем свой токен.

Файл скрипта располагаем, где удобно, например, можно в каталоге пользователя: /root/trash.sh. Устанавливаем на него права 740 (с возможностью запуска). Всё готово!

Теперь, когда вам потребуется очистить корзину, просто запустите этот файл. Естественно, его запуск можно добавить в расписание, по которому у вас создаются бэкапы.

Очистка происходит быстро. Чистится вся корзина, все файлы! Если вам требуется очищать в корзине лишь определённый каталог, то можете модифицировать файл скрипта.

cURL

Чтобы работал скрипт у вас должен быть установлен на веб-сервере cURL. Если его нет, то при попытке запуска скрипта вы получите:

./trash.sh: line 2: /usr/bin/curl: No such file or directory

Команда для установка cURL в Debian:

apt-get install curl

3 комментария

s1
The instructions weren’t clear enough. I got my dick caught in the ceiling fan. Curl выдаёт ошибку 58.
s1
А нет, с нормальным curl'ом всё хорошо, спасибо за инструкцию!
su
Спасибо, брат! Все четко работает!