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

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

18.04.2023
Содержание:

В новом уроке мы с вами рассмотрим работу с корзиной Яндекс.Диска через 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 Яндекс.Диска.

Материалы курса