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

  • Автор:

yandex-disk-trash-windows-000.pngНе так давно мы опубликовали статью об очистке корзины Яндекс.Диска через API в среде Linux, отметив, что все тоже самое можно сделать и в Windows системах, для которых понадобится только утилита curl. Однако в комментариях читатели попросили более полно раскрыть тему. А так как наш блог читают люди с разным уровнем технической подготовки мы решили пойти им навстречу, подробно описав алгоритм действий, а также добавили альтернативный способ с PowerShell.

Мы не будем заново описывать как получить токен авторизации Яндекс, для этих целей воспользуйтесь статьей Очистка корзины Яндекс.Диска через API в Debian и Ubuntu. Будем считать, что токен у вас уже есть, поэтому сразу пойдем дальше.

Вариант №1 - с использованием сURL

Для работы нам понадобится curl для Windows, скачаем его с официального сайта. Из всего скачанного архива нам потребуется только папка bin, разместите ее в удобном месте, желательно с коротким путем без пробелов и только с латинскими символами, например, C:\curl\bin.

yandex-disk-trash-windows-001.pngЧтобы не указывать полный путь к утилите, добавим ее расположение в системную переменную PATH, для этого перейдем в Панель управления - Система - Дополнительные параметры системы - Переменные среды:

yandex-disk-trash-windows-002.pngВ открывшемся окне в нижней части Системные переменные найдите переменную Path и нажмите Изменить:

yandex-disk-trash-windows-003.pngЗатем создайте новую строку и внесите в нее путь к папке с curl:

yandex-disk-trash-windows-004.pngСохраните изменения и выйдите, перезагрузка не требуется. Чтобы проверить работу, наберите в командной строке curl и имя любого сайта, если все сделано правильно в ответ вы получите содержимое страницы, например:

curl interface31.ru

yandex-disk-trash-windows-005.pngУбедившись, что все работает, можно приступать к взаимодействию с Яндексом, есть два варианта, начнем с более привычного, через пакетный файл. Откройте блокнот и внесите в него строку:

curl -s -H "Authorization: OAuth TOKEN" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=

где TOKEN - 40 символьная строка полученного вами токена.

Сохраните этот файл как пакетный, т.е. с расширением .bat или .cmd, скажем yandex_trash.cmd. Для проверки достаточно запустить его и убедиться, что корзина на Яндекс.Диске очистилась. Далее вы можете использовать этот файл самым различным образом: запускать вручную, через планировщик, вызывать из других скриптов. Однако помните, что там содержится в открытом виде ваш токен доступа, поэтому доступ посторонних к нему следует ограничить.

Второй способ предусматривает только использование планировщика. На наш взгляд он более удобен, так как не будет мелькать черное окно консоли, что важно для настольных систем. Создайте в Планировщике новое задание и при Создании действия заполните поля следующим образом: в поле Программа или сценарий напишите curl, а в поле Добавить аргументы поместите остальную часть строки:

yandex-disk-trash-windows-006.pngСохраните задание и запустите его вручную, корзина также должна очиститься.

Вариант №2 - с использованием PowerShell

Если вы не хотите использовать curl, то можно воспользоваться возможностями PowerShell, нам потребуется версия 3.0 или старше, из коробки данным требованиям удовлетворяют Windows 8/2012 и 10/2016/2019. Пользователям более ранних выпусков Windows потребуется скачать и установить PowerShell 3.0 отдельно.

Строка для очистки корзины через API Яндекс.Диска будет выглядеть следующим образом:

Invoke-WebRequest -Uri https://cloud-api.yandex.net/v1/disk/trash/resources/?path= -Headers @{Authorization = "OAuth TOKEN"} -Method DELETE

где TOKEN - строка полученного вами токена.

Сохраните ее в файл с расширением .ps1, для проверки запустите его через ПКМ - Выполнить с помощью PowerShell, корзина должна успешно очиститься, также можно ввести строку непосредственно в консоли PowerShell, это удобно для диагностики ошибок.

yandex-disk-trash-windows-007.pngДля выполнения по расписанию создайте новое задание в Планировщике и заполните поля Действия следующим образом: в поле Программа или сценарий напишите powershell, а в поле Добавить аргументы укажите -command путь_к_файлу.ps1, например:

-command C:\ADM\yandex_trash.ps1

yandex-disk-trash-windows-008.png

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

Дополнительные материалы:


  1. Установка консольного клиента Яндекс.Диск на Debian / Ubuntu
  2. Очистка корзины Яндекс.Диска через API в Debian и Ubuntu
  3. Очистка корзины Яндекс.Диска через API в Windows