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