В новом уроке мы с вами рассмотрим запросы для копирования, перемещения и удаления файлов с помощью PHP + Curl в облаке API Яндекс.Диск.
Удаление файла в Яндекс.Диске с помощью API
Начнём с создания метода для удаления файлов. Для удаления файла нужно отправить запрос на https://cloud-api.yandex.net/v1/disk/resources/ с указанием параметра текущего пути до файла и типа удаления (безвозвратное удаление или перемещение в корзину).
/**
* Удаление ресурса с Яндекс.Диск
*
* @param array $arrParams
* @return array
*/
public function disk_resources_delete(array $arrParams): array
{
$urlQuery = 'https://cloud-api.yandex.net/v1/disk/resources/';
return $this->sendQueryYaDisk($urlQuery, $arrParams, 'DELETE');
}
Публикация файла или папки в Яндекс.Диске с помощью API
Файлы и папки на Яндекс.Диске можно публиковать. При публикации генерируется ссылка, по которым они будут доступны не только владельцу. Доступ к уже опубликованному ресурсу можно закрыть.
Опубликованный ресурс получает два новых атрибута:
public_key
— ключ опубликованного ресурса. По этому ключу другие приложения смогут получить метаданные опубликованного ресурса.public_url
— публичная ссылка на ресурс видаhttps://yadi.sk/...
. Пользователи, которым владелец ресурса передаст эту ссылку, смогут открыть опубликованную папку или скачать файл.
Так как метод для публикации и отмены публикации принимает одинаковые параметры и имеет похожую структуру, я решил объединить эти два метода в один.
/**
* Публикация ресурса на Яндекс.Диске
*
* @param array $arrParams
* @param string $statusPublic
* @return array
*/
public function disk_resources_publish(array $arrParams, string $statusPublic = true): array
{
$urlQuery = 'https://cloud-api.yandex.net/v1/disk/resources/' . ($statusPublic) ? 'publish' : 'unpublish';
return $this->sendQueryYaDisk($urlQuery, $arrParams, 'PUT');
}
Получение списка публичных файлов на Яндекс.Диске
Отправив запрос на Яндекс.Диск вы так же можете получить список опубликованных файлов. Для получения списка публичных файлов необходимо отправить GET запрос на https://cloud-api.yandex.net/v1/disk/resources/public
limit | Количество опубликованных файлов, описание которых следует вернуть в ответе (например, для постраничного вывода). Значение по умолчанию — 20. |
offset | Количество ресурсов с начала списка, которые следует опустить в ответе (например, для постраничного вывода). Допустим, на Диске три опубликованных файла. Если запросить их список с параметром offset=1 , API Диска вернет только описания второго и третьего файлов. |
type | Тип ресурса. Допустимые значения:"dir" — папка;"file" — файл. |
fields | Список свойств JSON, которые следует включить в ответ. Ключи, не указанные в этом списке, будут отброшены при составлении ответа. Если параметр не указан, ответ возвращается полностью, без сокращений. Имена ключей следует указывать через запятую, а вложенные ключи разделять точками. Например: name,_embedded.items.path . |
preview_size | Требуемый размер уменьшенного изображения (превью файла), ссылку на которое Диск должен вернуть в ключе preview .Вы можете задать как точный размер превью, так и размер одной из сторон. Получившееся изображение можно обрезать до квадрата с помощью параметра preview_crop .Варианты значений: Предопределенный размер большей стороны. Картинка уменьшается до указанного размера по большей стороне, пропорции исходного изображения сохраняются. Например, для размера S и картинки размером 120×200 будет сгенерировано превью размером 90×150, а для картинки 300×100 — превью размером 150×50. Поддерживаемые значения: "S" — 150 пикселей;"M" — 300 пикселей;"L" — 500 пикселей;"XL" — 800 пикселей;"XXL" — 1024 пикселей;"XXXL" — 1280 пикселей.Точная ширина (например, "120" или "120x" ) или точная высота (например, "x145" ).Картинка уменьшается до указанной ширины или высоты, пропорции исходного изображения сохраняются. Если передан параметр preview_crop , из центра уменьшенного изображения также вырезается квадрат с заданной стороной.Точный размер (в формате <ширина>x<высота> , например "120x240" ).Картинка уменьшается до меньшего из указанных размеров, пропорции исходного изображения сохраняются. Если передан параметр preview_crop , из центра оригинального изображения вырезается фрагмент максимального размера в заданных пропорциях ширины и высоты (в примере — один к двум). Затем вырезанный фрагмент масштабируется до указанных размеров. |
В моё случае я так же использую для этого отдельный метод и он будет выглядеть так
/**
* Получение списка публичных файлов с Яндекс.Диска
*
* @param array $arrParams
* @return array
*/
public function disk_resources_public(array $arrParams): array
{
$urlQuery = 'https://cloud-api.yandex.net/v1/disk/resources/public';
return $this->sendQueryYaDisk($urlQuery, $arrParams);
}
Подведём итоги. В новом уроке мы с вами научились публиковать файлы находящиеся на Яндекс.Диске. В следующем уроке мы рассмотрим методы для работы с корзиной.