Для начала работы с Yandex Disk API на PHP установите официальный SDK через Composer. Выполните команду composer require yandex/php-sdk, чтобы добавить библиотеку в ваш проект. Это позволит быстро подключиться к API и начать взаимодействовать с облачным хранилищем.
После установки SDK создайте объект клиента, используя OAuth-токен, который можно получить в Яндекс.Паспорте. Укажите токен в конструкторе класса YandexDiskDiskClient. Например, $disk = new DiskClient(‘ваш_токен’). Теперь вы можете управлять файлами и папками на вашем диске.
Для загрузки файла на Yandex Disk используйте метод uploadFile. Укажите путь к файлу на вашем сервере и целевой путь на диске. Например, $disk->uploadFile(‘/local/path/file.txt’, ‘/remote/path/file.txt’). Этот метод поддерживает загрузку файлов до 10 ГБ.
Чтобы скачать файл, вызовите метод downloadFile. Укажите путь к файлу на диске и локальный путь для сохранения. Например, $disk->downloadFile(‘/remote/path/file.txt’, ‘/local/path/file.txt’). Это удобно для резервного копирования или обработки данных.
Для работы с папками используйте методы createDirectory и delete. Создайте новую папку с помощью $disk->createDirectory(‘/remote/path/new_folder’). Удалите ненужные данные, вызвав $disk->delete(‘/remote/path/old_folder’). Эти методы упрощают организацию файлов.
Yandex Disk API также поддерживает получение метаданных о файлах и папках. Используйте метод getMeta, чтобы узнать размер, тип и дату изменения объекта. Например, $meta = $disk->getMeta(‘/remote/path/file.txt’). Это полезно для анализа содержимого диска.
Для обработки ошибок добавьте проверку ответов API. Используйте исключения, чтобы отслеживать проблемы с авторизацией, доступом или лимитами. Например, оберните вызовы API в блок try-catch для корректной обработки ошибок.
Интеграция Yandex Disk API на PHP открывает широкие возможности для автоматизации работы с облачным хранилищем. Используйте приведенные методы для создания резервных копий, синхронизации данных или интеграции с другими сервисами.
Настройка и авторизация в Yandex Disk API
Создайте приложение в Yandex OAuth, чтобы получить идентификатор (Client ID) и секретный ключ (Client Secret). Эти данные потребуются для авторизации запросов к API.
Для авторизации используйте OAuth 2.0. Направьте пользователя на страницу авторизации Yandex, передав в URL ваш Client ID и параметр response_type=code. Пример URL:
https://oauth.yandex.ru/authorize?response_type=code&client_id=ВАШ_CLIENT_ID
После успешной авторизации пользователь будет перенаправлен на указанный вами redirect_uri с кодом авторизации в параметре code. Используйте этот код для получения токена доступа:
POST /token HTTP/1.1
Host: oauth.yandex.ru
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=ВАШ_КОД&client_id=ВАШ_CLIENT_ID&client_secret=ВАШ_CLIENT_SECRET
В ответ вы получите JSON с токеном доступа (access_token) и временем его жизни (expires_in). Сохраните токен для дальнейших запросов к API.
Для работы с API Yandex Disk используйте базовый URL https://cloud-api.yandex.net/v1/disk/. Добавляйте токен в заголовок запроса:
Authorization: OAuth ВАШ_ТОКЕН
Ниже приведен пример таблицы с основными параметрами для авторизации:
| Параметр | Описание | Пример |
|---|---|---|
| Client ID | Идентификатор вашего приложения | 1234567890abcdef1234 |
| Client Secret | Секретный ключ приложения | abcdef1234567890abcdef |
| Redirect URI | URL для перенаправления после авторизации | https://вашсайт.ru/callback |
| Access Token | Токен для доступа к API | y0_AgAAAAA1234567abcdef |
После получения токена вы можете начать выполнение запросов к API Yandex Disk, например, для загрузки файлов, создания папок или получения списка файлов.
Получение API-ключа для Yandex Disk
Для начала работы с Yandex Disk API создайте приложение в Yandex OAuth. Перейдите в раздел «Мои приложения» и нажмите «Создать новое приложение». Заполните обязательные поля: название, описание и URI для перенаправления. После создания приложения вы получите Client ID и Client Secret.
Сгенерируйте токен доступа, используя Client ID. Для этого перейдите по ссылке: https://oauth.yandex.ru/authorize?response_type=token&client_id=ВАШ_CLIENT_ID. Авторизуйтесь в Yandex, если потребуется, и подтвердите доступ. После успешной авторизации вы будете перенаправлены на указанный URI, где в адресной строке найдете access_token.
Сохраните полученный токен в безопасном месте. Используйте его в запросах к API для авторизации. Если токен истекает, повторите процесс генерации. Для автоматизации обновления токена рассмотрите использование refresh_token, который можно получить, указав response_type=code вместо response_type=token.
Настройка OAuth 2.0 для доступа к API
Создайте приложение в Yandex Developer Console, чтобы получить Client ID и Client Secret. Перейдите в раздел «Приложения» и нажмите «Создать приложение». Выберите тип «Веб-сервис» и укажите название. После создания скопируйте данные для авторизации.
Настройте URI перенаправления в параметрах приложения. Укажите адрес, на который Yandex будет отправлять код авторизации. Например, используйте https://ваш-сайт.ru/callback. Это обязательный шаг для корректной работы OAuth 2.0.
Используйте Client ID и Client Secret для получения токена. Сформируйте URL для запроса авторизации:
https://oauth.yandex.ru/authorize?response_type=code&client_id=ВАШ_CLIENT_ID&redirect_uri=ВАШ_REDIRECT_URI
После перенаправления на ваш сайт получите код авторизации из параметра code в URL. Отправьте POST-запрос на https://oauth.yandex.ru/token с параметрами:
grant_type=authorization_codecode=ВАШ_КОДclient_id=ВАШ_CLIENT_IDclient_secret=ВАШ_CLIENT_SECRET
В ответ вы получите access_token, который используйте для запросов к API Yandex Disk. Токен действителен в течение одного года, но его можно обновить с помощью refresh_token, если это потребуется.
Сохраните токен в безопасном месте, например, в базе данных или файле с ограниченным доступом. Это предотвратит утечку данных и обеспечит стабильную работу приложения.
Проверка прав доступа и авторизация пользователя
Для работы с Yandex Disk API начните с получения OAuth-токена. Перейдите в Yandex OAuth, создайте приложение и получите идентификатор клиента (Client ID). Используйте его для авторизации пользователя через URL вида:
https://oauth.yandex.ru/authorize?response_type=code&client_id=ВАШ_CLIENT_ID
После успешной авторизации пользователь получит код, который обменяйте на токен. Отправьте POST-запрос на https://oauth.yandex.ru/token с параметрами:
| Параметр | Значение |
|---|---|
| grant_type | authorization_code |
| code | Код авторизации |
| client_id | Ваш Client ID |
| client_secret | Ваш Client Secret |
В ответе вы получите токен, который используйте в заголовке запросов:
Authorization: OAuth ВАШ_ТОКЕН
Проверьте права доступа перед выполнением операций. Например, для проверки доступа к папке отправьте GET-запрос на https://cloud-api.yandex.net/v1/disk/resources с параметром path, указывающим путь к ресурсу. Ответ содержит информацию о правах:
{
"public_key": "ключ",
"_embedded": {
"items": [
{
"path": "путь",
"type": "тип",
"permissions": {
"read": true,
"write": true
}
}
]
}
}
Если доступ запрещен, API вернет ошибку 403. Убедитесь, что токен актуален и имеет необходимые права. Для обновления токена используйте refresh_token, полученный при первоначальной авторизации.
Работа с файлами и папками через Yandex Disk API
Для работы с файлами и папками на Yandex Disk используйте методы API, которые позволяют выполнять базовые операции. Например, для загрузки файла на диск отправьте POST-запрос на /v1/disk/resources/upload, указав путь к файлу и получив ссылку для загрузки. После этого отправьте файл методом PUT на полученный URL.
Чтобы создать папку, отправьте PUT-запрос на /v1/disk/resources, передав параметр path с именем новой папки. Если папка уже существует, API вернет ошибку, поэтому предварительно проверьте её наличие с помощью GET-запроса на тот же эндпоинт.
Для копирования или перемещения файлов используйте POST-запрос на /v1/disk/resources/move или /v1/disk/resources/copy. Укажите исходный путь (from) и конечный путь (path). Эти методы поддерживают как файлы, так и папки.
Чтобы удалить файл или папку, отправьте DELETE-запрос на /v1/disk/resources с параметром path. Учтите, что удаление происходит без возможности восстановления, поэтому убедитесь в правильности выбора объекта.
Для получения списка файлов в папке используйте GET-запрос на /v1/disk/resources с параметром path. Ответ будет содержать массив объектов с информацией о файлах и папках, включая их размер, тип и дату изменения.
Если нужно скачать файл, отправьте GET-запрос на /v1/disk/resources/download, указав путь к файлу. API вернет ссылку для скачивания, которую можно использовать для получения содержимого.
Для удобства работы с большими файлами поддерживается докачка. Используйте заголовок Range в GET-запросе на ссылку для скачивания, чтобы загрузить файл по частям.
API также позволяет получать метаданные файлов, такие как размер, тип и превью. Отправьте GET-запрос на /v1/disk/resources с параметром path и дополнительным параметром preview_size, чтобы получить миниатюру изображения.
Используйте эти методы для автоматизации работы с файлами и папками на Yandex Disk. Это упростит управление данными и интеграцию с вашими приложениями.
Загрузка файлов на Yandex Disk с помощью PHP
Для загрузки файлов на Yandex Disk через PHP используйте метод upload API. Сначала получите ссылку для загрузки, затем отправьте файл по этой ссылке. Вот пошаговая инструкция:
- Получите OAuth-токен: Авторизуйтесь через OAuth 2.0, чтобы получить токен. Это обязательный шаг для работы с API.
- Запросите ссылку для загрузки: Отправьте GET-запрос на
https://cloud-api.yandex.net/v1/disk/resources/upload, указав путь на диске и токен в заголовке. Например:GET /v1/disk/resources/upload?path=/path/to/file.txt HTTP/1.1 Host: cloud-api.yandex.net Authorization: OAuth YOUR_TOKEN - Загрузите файл: Используйте полученную ссылку для отправки файла методом PUT. Пример кода на PHP:
$filePath = '/local/path/to/file.txt'; $uploadUrl = 'https://upload-url-from-response'; $ch = curl_init($uploadUrl); curl_setopt($ch, CURLOPT_PUT, true); curl_setopt($ch, CURLOPT_INFILE, fopen($filePath, 'r')); curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filePath)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch);
Если файл успешно загружен, API вернет HTTP-код 201. Убедитесь, что путь на диске указан корректно, иначе вы получите ошибку.
Для работы с большими файлами (более 2 ГБ) используйте метод upload_by_parts, который поддерживает загрузку по частям. Это требует дополнительных шагов, но позволяет избежать ограничений на размер файла.
Пример обработки ошибок:
- Проверяйте HTTP-код ответа. Код 400 означает ошибку в запросе, 401 – проблемы с авторизацией.
- Используйте try-catch для обработки исключений в PHP.
Для упрощения работы с API можно использовать готовые библиотеки, например yandex/disk-api-client. Они сокращают количество кода и упрощают отладку.
Список файлов и управление метаданными
Для получения списка файлов с Yandex Disk API используйте метод GET /v1/disk/resources/files. Этот запрос возвращает массив объектов, каждый из которых содержит информацию о файле: имя, путь, размер, тип и дату изменения. Чтобы ограничить количество возвращаемых элементов, добавьте параметр limit в запрос.
Для работы с метаданными конкретного файла или папки применяйте метод GET /v1/disk/resources. Укажите путь к ресурсу в параметре path. API вернет детали, включая размер, тип MIME, дату создания и последнего изменения. Если нужно обновить метаданные, например, изменить имя файла, используйте метод PATCH /v1/disk/resources с передачей новых данных в теле запроса.
Чтобы упростить поиск файлов, добавьте параметр fields в запрос. Это позволяет выбрать только нужные поля, например, имя и размер, сокращая объем данных. Для фильтрации по типу файла используйте параметр media_type, указав значения audio, video, image или document.
Для управления правами доступа к файлам или папкам применяйте метод PUT /v1/disk/resources/publish. Это позволяет сделать ресурс публичным и получить ссылку для общего доступа. Чтобы отозвать публикацию, используйте метод DELETE /v1/disk/resources/unpublish.
Все запросы к API требуют авторизации. Передавайте токен доступа в заголовке Authorization в формате OAuth <токен>. Это обеспечивает безопасное взаимодействие с вашими данными на Yandex Disk.
Удаление и переименование файлов на Yandex Disk
Для удаления файла или папки на Yandex Disk используйте метод DELETE с указанием пути к объекту. Пример запроса:
DELETE /v1/disk/resources?path=%2Fexample.txt HTTP/1.1
Host: cloud-api.yandex.net
Authorization: OAuth ваш_токен
Для переименования или перемещения файла примените метод PATCH. Укажите текущий путь и новое название или расположение. Пример:
PATCH /v1/disk/resources?path=%2Fold_name.txt HTTP/1.1
Host: cloud-api.yandex.net
Authorization: OAuth ваш_токен
Content-Type: application/json
{
"name": "new_name.txt"
}
При перемещении файла добавьте параметр from:
{
"from": "/old_path/file.txt",
"path": "/new_path/file.txt"
}
Обратите внимание на следующие моменты:
- Убедитесь, что у вашего токена есть права на выполнение операций.
- Проверяйте коды ответа:
204– успешное удаление,201– успешное переименование или перемещение. - При удалении папки все её содержимое также будет удалено.
Если нужно восстановить удалённый объект, используйте метод PUT с параметром path и значением trash:/. Пример:
PUT /v1/disk/resources/restore?path=%2Fexample.txt HTTP/1.1
Host: cloud-api.yandex.net
Authorization: OAuth ваш_токен
Работайте с API аккуратно, чтобы избежать случайной потери данных.
Создание и управление папками через API
Для создания папки в Yandex Disk используйте метод PUT /v1/disk/resources. Укажите путь к новой папке в параметре path. Например, чтобы создать папку «Projects» в корневом каталоге, отправьте запрос:
PUT /v1/disk/resources?path=/Projects
Если папка успешно создана, API вернет статус 201 Created. Если папка уже существует, вы получите ошибку 409 Conflict.
Чтобы переименовать папку, используйте метод POST /v1/disk/resources/move. Укажите текущий путь к папке в параметре from и новый путь в параметре path. Например:
POST /v1/disk/resources/move?from=/Projects&path=/NewProjects
Для удаления папки воспользуйтесь методом DELETE /v1/disk/resources. Укажите путь к папке в параметре path. Учтите, что папка будет удалена безвозвратно:
DELETE /v1/disk/resources?path=/Projects
Если нужно проверить существование папки, используйте метод GET /v1/disk/resources. Укажите путь к папке в параметре path. Если папка существует, API вернет информацию о ней:
GET /v1/disk/resources?path=/Projects
Для работы с вложенными папками укажите полный путь, например /Projects/2023. Это позволяет структурировать данные на диске.
Используйте параметр fields в запросах, чтобы получить только нужные данные. Например, чтобы узнать размер папки, добавьте fields=_embedded.items.path,_embedded.items.size:
GET /v1/disk/resources?path=/Projects&fields=_embedded.items.path,_embedded.items.size
Эти методы помогут вам эффективно управлять папками на Yandex Disk через API.






