net-code / laravel-media
Reusable presigned-S3 file uploads for Laravel — initiate/complete lifecycle, temporary download URLs, and a FileDirectory seam — built with hexagonal ports & adapters.
Package info
github.com/Net-Tech-Marek-Rode-Sp-z-o-o/laravel-media
pkg:composer/net-code/laravel-media
Requires
- php: ^8.5
- illuminate/console: ^13.0
- illuminate/contracts: ^13.0
- illuminate/database: ^13.0
- illuminate/filesystem: ^13.0
- illuminate/http: ^13.0
- illuminate/routing: ^13.0
- illuminate/support: ^13.0
- league/flysystem-aws-s3-v3: ^3.0
- net-code/laravel-bus: ^0.1.0
- net-code/laravel-domain: ^0.1.0
- net-code/laravel-kit: ^0.3.0
- spatie/laravel-data: ^4.23
Requires (Dev)
- larastan/larastan: ^3.10
- laravel/pint: ^1.27
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^13.2
README
Reusable presigned-S3 file uploads for Laravel — an initiate → complete lifecycle over an
object store, temporary download URLs, and a FileDirectory seam so other modules can reference
files by id. Built with hexagonal ports & adapters.
composer require net-code/laravel-media php artisan migrate
docs/usage.md— install, config, ports, wiring.docs/flows.md— the upload lifecycle end to end.
v1 scope
Presigned S3 upload (initiate → complete), read + delete, temporary download URLs, the
FileDirectory contract (snapshots + areCompleted) for cross-module reference, and a daily purge
of abandoned (initiated-but-never-completed) uploads. Authentication is host-wired via the
CurrentUser port; storage via the ObjectStorage port (default: Laravel S3 disks).
License
MIT