Download the PHP package leonied7/yandex-disk-api without Composer
On this page you can find all versions of the php package leonied7/yandex-disk-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download leonied7/yandex-disk-api
More information about leonied7/yandex-disk-api
Files in leonied7/yandex-disk-api
Package yandex-disk-api
Short Description Библиотека для работы с Яндекс.диск API
License MIT
Informations about the package yandex-disk-api
PHP библиотека к API Яндекс диска
Введение
Неофициальное PHP SDK для сервиса Яндекс.Диск
Список изменений
27/12/2018
- полностью переписана логика работы с api
- упращена работы с SDK
- обновлено README
Требования
- PHP 5.6+
- Расширение php_curl
Установка
Composer
пример подключения:
Тесты
Запуск тестов из корня библиотеки:
Описание
Введение
SDK для работы использует WebDAV API Яднекс Диска. Для работы необходим OAuth-токен(например, AQACc1234LDE2f_123UIbouFHzfxxcvDI), который необходимо получить самостоятельно:
- зарегистрировать приложение и самостоятельно получить токен https://oauth.yandex.ru/
OAuth-токен должен иметь разрешённые права "Яндекс.Диск WebDAV API"
Возможности
- Работа с папками на Яндекс.Диске (создание, копирование, перемещение, удаление, публикация и т.д.)
- Работа с файлами на Яндекс.Диске (создание, загрузка, скачивание, копирование, перемещение, удаление, публикация и т.д.)
- Потоковая загрузка и скачивание файлов
- Фрагментное скачивание файлов
Инициализация
Использование
\Leonied7\Yandex\Disk
- используется для работы с диском, запрашивает основную информацию о диске и клиенте, а так же помогает работать с файлами и папками-
\Leonied7\Yandex\Disk\Item\File
- используется для работы с файлом \Leonied7\Yandex\Disk\Item\Directory
- используется для работы с директорией
Используемые объекты
-
\Leonied7\Yandex\Disk\Entity\Result - после выполнения любого запроса к Яндекс.Диску можно получить информацию о результате
- \Leonied7\Yandex\Disk\Entity\Collection
- \Leonied7\Yandex\Disk\Collection\PropertyCollection - коллекция свойств
- \Leonied7\Yandex\Disk\Collection\PropertyFail - коллекция ошибочных свойств свойств
-
\Leonied7\Yandex\Disk\Model\Property
- \Leonied7\Yandex\Disk\Property\Immutable - неизменяемое свойство
- \Leonied7\Yandex\Disk\Property\Mutable - изменяемое свойство
- \Leonied7\Yandex\Disk\Item\Item
- \Leonied7\Yandex\Disk\Item\File - объект файла
- \Leonied7\Yandex\Disk\Item\Directory - объект директории
- \Leonied7\Yandex\Disk\Model\Decorator
- \Leonied7\Yandex\Disk\Decorator\CurrentElement - возвращает данные о элементе с входных путём
- \Leonied7\Yandex\Disk\Decorator\CurrentElementCollection - возвращает данные о коллекции элемента с входных путём
- \Leonied7\Yandex\Disk\Decorator\CurrentElementCollectionItem - возвращает данные о свойстве коллекции элемента с входных путём
- \Leonied7\Yandex\Disk\Decorator\CurrentElementCollectionItemValue - возвращает значение свойства коллекции элемента с входных путём
- \Leonied7\Yandex\Disk\Decorator\CurrentElementFailCollection - возвращает массив ошибочных коллекций элемента с входных путём
- \Leonied7\Yandex\Disk\Decorator\ExplodeData - возвращает разбитую строку на массив типа "ключ => значение"
- \Leonied7\Yandex\Disk\Model\Stream
- \Leonied7\Yandex\Disk\Stream\File - осуществляет работу с потоком файла, используется для записи/чтения файла
Использование
Запрос информации о пользователе
- \Leonied7\Yandex\Disk\Stream\File - осуществляет работу с потоком файла, используется для записи/чтения файла
Запрос свободного/занятого места
Загрузка файла (Применимо только для файлов)
Скачивание файла (Применимо только для файлов)
SDK поддерживает скачивание файлов несколькими способами:
-
Потоковое скачивание
-
Потоковое скачивание частями
- Скачивание без потока
Получение превью картинок (Применимо только для файлов)
Первым параметром передаётся размер превью, может быть применён любой из документации
Превью может быть получена потоком, либо без потока
Создание директории (Применимо только для директорий)
Получение содержимого директории (Применимо только для директорий)
Так же первым параметром можно передать объект типа \Leonied7\Yandex\Disk\Collection\PropertyCollection для получения свойств для всех элементов.
Так же 2 и 3 параметром можно указать offset(смещение)
и amount(количество)
- для получение только необходимого диапозона элементов.
Проверка существования элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
Так как для проверки существования используется метод запроса свойств, то по умолчанию Яндекс.Диск отдаёт свойства. При вызове метода
has()
можно передать объект типа \Leonied7\Yandex\Disk\Collection\PropertyCollection.
Пример:
Если объект не передаётся, то выбираются все доступные свойства автоматически.
Получить пришедшие свойства можно следущим образом:
или
Результат будет хранить только успешно полученные свойства.
Для получения ошибочных свойств
Копирование элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
По стандарту если файл уже существует по назначения, то он будет перезаписан. Для запрета перезаписи, необходимо передать вторым параметром
false
Перемещение элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
По стандарту если файл уже существует по назначения, то он будет перезаписан. Для запрета перезаписи, необходимо передать вторым параметром
false
Удаление элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
Загрузка свойств элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
Ранее успешно загруженные свойства можно получить с помощью
$file->getProperties();
Результат будет хранить только успешно полученные свойства.
Для получения ошибочных свойств
полное описание ошибочный коллекций \Leonied7\Yandex\Disk\Collection\PropertyFail
Получение существующих свойств (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
Внимание!!! свойства приходят без значений и не могут быть получены через
$file->getProperties();
Изменение свойства элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
Есть два способа изменения свойств у элемента:
-
Изменение переданных свойств
Добавляем свойства
myprop
иpropmy
с namespacemynamespace
значенияfoo
иbar
соответственно. Удаляем свойствоpropprop
-
Сохранение заранее полученных свойств
Неименяемые свойства не сохраняются
Загружаем свойства
myprop
,propmy
,propprop
,quota-available-bytes
В загруженной коллекции есть свойства двух видов, изменяемые и неименяемые
Свойства приходят неизменяемыми для встроенных свойств Яндекс.Диска. Например
quota-available-bytes
будет неизменяемымДля получения только изменяемых свойств коллекции
Так же можно узнать можно ли изменять свойтво через метод у свойства
canChanged()
После этого сохраняем измененные значения
Публикация элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
Закрытие публикации элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
Проверка публикации элемента (Применимо для файла/директории)
Пример написан для файла, но метод так же применим для директории
All versions of yandex-disk-api with dependencies
php Version >=5.6
ext-curl Version *
ext-fileinfo Version *
ext-dom Version *
ext-json Version *
ext-mbstring Version *