Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Cloud Storage Service

Абстрактный слой для работы с облачными хранилищами (S3, DO Spaces, Minio, GCS).

Возможности

  • Единый интерфейс для любого S3-совместимого хранилища
  • Генерация уникальных имён файлов (UUID + безопасное оригинальное имя)
  • Временные подписанные ссылки для приватных файлов
  • Полный CRUD: загрузка, удаление, копирование, перемещение, списки
  • Строгая типизация и value objects вместо массивов
  • 100% покрытие тестами с моками Storage фасада

Установка

  1. Скопируйте папку src/ в свой проект
  2. Зарегистрируйте провайдер в config/app.php:
App\Services\CloudStorage\CloudStorageServiceProvider::class,
  1. Опубликуйте конфиг:
php artisan vendor:publish --tag=cloud-storage-config
  1. Укажите нужный диск в .env: CLOUD_STORAGE_DISK=s3

Использование

use App\Services\CloudStorage\CloudStorageService;

$storage = new CloudStorageService('s3');

// Загрузка
$result = $storage->upload($request->file('avatar'), 'users/avatars');

// Временная ссылка (60 минут)
$url = $storage->temporaryUrl($result->path, 60);

// Удаление
$storage->delete($result->path);

Тестирование

php artisan test --filter=CloudStorageServiceTest

About

Абстрактный сервис для облачных хранилищ на Laravel

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages