API Яндекс.Диск (PHP) #5: Работа с корзиной

от автора

В новом уроке мы с вами рассмотрим работу с корзиной Яндекс.Диска через API с использованием PHP и Curl. Я вам расскажу о том как восстанавливать файлы из корзины и как очищать корзину.

Полный список всех записей курса находится на сайте https://prog-time.ru/course_cat/yandeks-disk-api-php/ или в публикациях на Хабр https://habr.com/ru/users/Prog-Time/posts/

Прежде чем работать с корзиной вам необходимо отправить запрос на получение ресурсов в корзине, чтобы точно знать пути к файлам в корзине, иначе у вас будет выводиться ошибка связанная с указанием неправильного пути.

Ранее мы уже рассматривали метод для получения ресурсов из корзины.

Запросы будут отправляться на https://cloud-api.yandex.net/v1/disk/trash/resources, а сам метод будет выглядеть так:

/**  * Получение директорий  *  * @param array $arrParams параметры для получения ресурсов  * @param string $typeDir тип области ресурсов  *  * @return array  */ public function disk_resources(array $arrParams, string $typeDir = ''): array {   switch ($typeDir) {       case 'trash':           /* запрос для директорий в корзине */           $urlQuery = 'https://cloud-api.yandex.net/v1/disk/trash/resources';           break;       default:           /* запрос для активных директорий */           $urlQuery = 'https://cloud-api.yandex.net/v1/disk/resources';           break;   }      return $this->sendQueryYaDisk($urlQuery, $arrParams);  }

Восстановление файла или папки из Корзины Яндекс.Диска

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

https://cloud-api.yandex.net/v1/disk/trash/resources/restore.

В качестве параметра передаётся путь до ресурса и новое название файла.

path *

Путь к восстанавливаемому ресурсу относительно корневого каталога Корзины. Путь в значении параметра следует кодировать в URL-формате.

name

Новое имя восстанавливаемого ресурса. Например, selfie.png.

overwrite

Признак перезаписи. Учитывается, если ресурс восстанавливается в папку, в которой уже есть ресурс с таким именем.

Допустимые значения:
false — не перезаписывать файлы и отменить восстановление. Используется по умолчанию.
true — восстановить ресурс, удаляя имеющиеся файлы с совпадающими именами.

Путь до файла нужно прописывать в точности как нам возвращает его запрос на https://cloud-api.yandex.net/v1/disk/trash/resources.

/**  * Метод для востановления файла из корзины  *  * @param  array $arrParams  * @return array  */ public function disk_trash_resources_restore(array $arrParams): array {     $urlQuery = 'https://cloud-api.yandex.net/v1/disk/trash/resources/restore';     return $this->sendQueryYaDisk($urlQuery, $arrParams, 'PUT'); }

Пример параметров передаваемых в запрос на восстановление файлов.

$arrParams = [     'path' => 'trash:/%2Fuploads_750d7fff9b63b29538e5f4d8961a599c3517a76b',     'name' => 'uploads_test', ];  $backupClass = new Backup(); $resultQuery = $backupClass->disk_trash_resources_restore($arrParams);

Удаление файлов из корзины Яндекс.Диска через API

Для того чтобы отчистить корзину в Яндекс.Диске через API нужно отправить запрос на https://cloud-api.yandex.net/v1/disk/trash/resources с параметром path указывающим путь до файла который нужно удалить.

Если вы не передадите параметр path, то корзина отчистится полностью.

/**  * Метод для удаления файлов из корзины  *  * @param  array $arrParams  * @return array  */ public function disk_trash_resources_delete(array $arrParams): array {     $urlQuery = 'https://cloud-api.yandex.net/v1/disk/trash/resources';     return $this->sendQueryYaDisk($urlQuery, $arrParams, 'DELETE'); }

В новом уроке мы с вами рассмотрели методы для работы с корзиной, научились восстанавливать и удалять файлы из корзины.

В следующем уроке я вам покажу упрощённую версию класса для работы с API Яндекс.Диска.


ссылка на оригинал статьи https://habr.com/ru/articles/749174/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *