Не так давно мы опубликовали статью об очистке корзины Яндекс.Диска через API в среде Linux, отметив, что все тоже самое можно сделать и в Windows системах, для которых понадобится только утилита curl. Однако в комментариях читатели попросили более полно раскрыть тему. А так как наш блог читают люди с разным уровнем технической подготовки мы решили пойти им навстречу, подробно описав алгоритм действий, а также добавили альтернативный способ с PowerShell.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Мы не будем заново описывать как получить токен авторизации Яндекс, для этих целей воспользуйтесь статьей Очистка корзины Яндекс.Диска через API в Debian и Ubuntu. Будем считать, что токен у вас уже есть, поэтому сразу пойдем дальше.
Вариант №1 - с использованием сURL
Для работы нам понадобится curl для Windows, скачаем его с официального сайта. Из всего скачанного архива нам потребуется только папка bin, разместите ее в удобном месте, желательно с коротким путем без пробелов и только с латинскими символами, например, C:\curl\bin.
Чтобы не указывать полный путь к утилите, добавим ее расположение в системную переменную PATH, для этого перейдем в Панель управления - Система - Дополнительные параметры системы - Переменные среды:
В открывшемся окне в нижней части Системные переменные найдите переменную Path и нажмите Изменить:
Затем создайте новую строку и внесите в нее путь к папке с curl:
Сохраните изменения и выйдите, перезагрузка не требуется. Чтобы проверить работу, наберите в командной строке curl и имя любого сайта, если все сделано правильно в ответ вы получите содержимое страницы, например:
curl interface31.ru
Убедившись, что все работает, можно приступать к взаимодействию с Яндексом, есть два варианта, начнем с более привычного, через пакетный файл. Откройте блокнот и внесите в него строку:
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, а в поле Добавить аргументы поместите остальную часть строки:
Сохраните задание и запустите его вручную, корзина также должна очиститься.
Вариант №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, это удобно для диагностики ошибок.
Для выполнения по расписанию создайте новое задание в Планировщике и заполните поля Действия следующим образом: в поле Программа или сценарий напишите powershell, а в поле Добавить аргументы укажите -command путь_к_файлу.ps1, например:
-command C:\ADM\yandex_trash.ps1
Для проверки также запустите задание вручную и убедитесь, что корзина на Яндекс.Диске очищена.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии