Автоматическая очистка корзины Яндекс диска

Многие уже наверно делают бекапы на Яндекс Диск - бесплатное место ограничено 10 гигабайтами.

Ка правило, любые скрипты бекапа удаляют старые копии (затирают) и заливают новые. Но в Яндекс Диске они не удаляются, а перемещаются в корзину (и хранятся месяц), занятое дисковое пространство в корзине входит в ограничение в 10 гигабайт.

Поэтому быстро кончается место на Яндекс Диске и бекапы вследствие отсутствия места перестают делаться. Чистить руками постоянно корзину не вариант, можно реализовать автоматическую очистку корзины следующим образом:

 

1. Авторизуемся https://oauth.yandex.ru/ и создаем приложение:

Жмем кнопку: Создать приложение:
Название сервиса*: cleantrash (любое название);
Для какой платформы нужно приложение?: ставим галку Веб-сервисы и чуть ниже щелкаем на Подставить URL для разработки
в поле Callback URI #1: автоматом подставляется https://oauth.yandex.ru/verification_code;
Ниже выбираем Яндекс.Диск REST API: ставим 4 галки:

-Доступ к папке приложения на Диске
-Чтение всего Диска
-Запись в любом месте на Диске
-Доступ к информации о Диске

По желанию заполняем:
-Ссылка на сайт
-Email для связи

Жмем кнопку: Создать Приложение.

В итоге мы получим:

ClientID
Это идентификатор вашего приложения. Используйте его в запросах для получения OAuth-токена

Client secret
Секретный ключ, которым будет подписан jwt-токен с информацией о пользователе - на данном этапе он нас не интересует.

Нас интересует ClientID - копируем его себе.

2. Для получения OAuth-токена  вызываем в браузере url

https://oauth.yandex.ru/authorize?response_type=token&display=popup&client_id=вашid

где вашid - это ClientID приложения, который мы сохранили себе ранее - например: niQK3uLWKytUILFpMyKPT4IePzlEXwhuQYmSk0qy , входим под вашей учеткой яндекс.

То есть нужно будет вызвать url в браузере с вашим ClientID приложения - пример url с ClientID приложения niQK3uLWKytUILFpMyKPT4IePzlEXwhuQYmSk0qy :

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

Результатом вывода браузера будет ваш токен (OAuth-токен).

Сохраняем себе полученный OAuth-токен и используем его в ваших скриптах.

3. Настройка планировщика для linux, Mac OS:

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

nano /home/user/cleanya.sh
#!/bin/sh
/usr/bin/curl -s -H "Authorization: OAuth ваштокен" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=

где ваштокен - это токен который вы получили в яндексе  - например: g6lCt1dULu8tbGN40axBH6hz4WNsohsyYIShw0uOEMn1iqOHqLXgy0HbOM

chmod 700 /home/user/cleanya.sh

Ставим в крон этот скрипт -во сколько и так часто, как вам нужно

 0 9 * * * /home/user/cleanya.sh > /dev/null 2>&1

 

4. Настройка планировщика для windows 10:

Скачиваем утилиту curl для windows по ссылке https://curl.haxx.se/windows/ , распаковываем содержимое архива в папку C:\Users\user\Downloads\curl , где user это ваш пользователь windows, под которым вы работаете.

Создаем bat файл c:\Users\user\Downloads\curl\ya.bat  со следующим содержимым:

@echo off
START /B c:\Users\user\Downloads\curl\bin\curl.exe -s -H "Authorization: OAuth ваштокен" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=
exit

где ваштокен - токен который вы получили  в яндексе  - например: g6lCt1dULu8tbGN40axBH6hz4WNsohsyYIShw0uOEMn1iqOHqLXgy0HbOM

Для запуска bat файла в фоновом режиме (чтобы не выскакивало постоянно черное окно cmd), создаем vbs файл c:\Users\user\Downloads\curl\ya.vbs со следующим содержимым:

Set WshShell = CreateObject("WScript.Shell" ) 
WshShell.Run chr(34) & "c:\Users\user\Downloads\curl\ya.bat" & Chr(34), 0 
Set WshShell = Nothing

проверяем - запускаем вручную ya.vbs двойным кликом мыши.

Создаем задание в планировщике windows 10:
- меню планировщика - создать простую задачу, имя - cleanya, далее - триггер (выбираем время запуска какое вам нужно), действие - запустить программу, далее - запуск программы (в поле программа или сценарий вводим wscript.exe , ниже, в поле Добавить аргументы - путь до vbs скрипта в кавычках)

"c:\Users\user\Downloads\curl\ya.vbs"

 

проверяем задание в планировщике - жмем правой кнопкой мыши - выполнить.

В итоге корзина Яндекс диска автоматически ежедневно очищается!