Пакет предоставляет готовый REST API для работы с пользовательскими облачными хранилищами.
Можно добавить новые типы хранилищ. Как это сделать - см.глава Использование
На данный момент пакет доступен только на Github.
- Чтобы
composer
смог установить пакет из Github, добавить вcomposer.json
секцию
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/ulngollm/laravel-cloudstorages"
}
]
}
- Установить
composer require ully/cloudstorages
- Скопировать в проект миграции и конфиги
php artisan vendor:publish --provider="Ully\Cloudstorages\CloudStoragesProvider"
API доступен по эндпоинтам с префиксом /api/storages
.
Спецификация API доступна на SwaggerHub
Конфигурация сервиса находится в config/storages.php
. Там перечислены поддерживаемые типы хранилищ.
На данный момент реализована только поддержка Яндекс Диска.
Для реализации нового типа хранилища требуется:
- добавить миграцию для таблицы с доступами (credentials). Добавить модель для этого типа credentials. Модель должна
наследовать
Ully\Cloudstorages\Models\StorageCredentials
. - добавить его в конфиге в секцию
drivers
и описать параметры (по существующему примеру); - реализовать обработчик, имплементирующий интерфейс
Ully\Cloudstorages\Services\ExternalStorage
- выполнить команду
drivers:update
Также в пакете есть набор готовых blade
-шаблонов. Среди них
- страница списка хранилищ (
cloudstorages::storages
) - страница списка файлов (
cloudstorages::files
) - view-компоненты File и Storage (
<x-cloud-storage/>
,<x-cloud-file/>
)
Чтобы кастомизировать их, выполните php artisan vendor:publish --provider="Ully\Cloudstorages\CloudStoragesProvider"
. Шаблоны скопируются в папку resources/views/vendor/cloudstorages
.