В новом уроке мы с вами рассмотрим работу с корзиной Яндекс.Диска через API с использованием PHP и Curl. Я вам расскажу о том как восстанавливать файлы из корзины и как очищать корзину.
Прежде чем работать с корзиной вам необходимо отправить запрос на получение ресурсов в корзине, чтобы точно знать пути к файлам в корзине, иначе у вас будет выводиться ошибка связанная с указанием неправильного пути.
Ранее мы уже рассматривали метод для получения ресурсов из корзины. Запросы будут отправляться на 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 Яндекс.Диска.