Yandex Disk API PHP Интеграция и использование руководство

Для начала работы с 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_code
  • code=ВАШ_КОД
  • client_id=ВАШ_CLIENT_ID
  • client_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. Сначала получите ссылку для загрузки, затем отправьте файл по этой ссылке. Вот пошаговая инструкция:

  1. Получите OAuth-токен: Авторизуйтесь через OAuth 2.0, чтобы получить токен. Это обязательный шаг для работы с API.
  2. Запросите ссылку для загрузки: Отправьте 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
    
  3. Загрузите файл: Используйте полученную ссылку для отправки файла методом 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.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии