lombokclarion / storage
File storage behind relative, traversal-validated paths. Local filesystem only — cloud drivers are separate packages depending on the Storage interface, never core dependencies.
v2.1.0
2026-08-08 17:25 UTC
Requires
- php: >=8.3
- lombokclarion/http: *
This package is auto-updated.
Last update: 2026-08-09 13:12:33 UTC
README
Local filesystem storage with path-traversal blocking and secure file uploads.
[READ-ONLY] This is a subtree split of the LombokClarion monorepo.
Do not send pull requests here — contribute to the main repository instead.
Install
composer require lombokclarion/storage
Namespace
LombokClarion\Storage
What's Inside
| Class | Role |
|---|---|
Storage |
Interface: put(), get(), exists(), delete(), store() |
LocalStorage |
Filesystem implementation rooted at one directory |
Usage
use LombokClarion\Storage\LocalStorage; $storage = new LocalStorage('/app/storage/app'); $storage->put('reports/q3.txt', $content); $content = $storage->get('reports/q3.txt'); $storage->exists('reports/q3.txt'); // true $storage->delete('reports/q3.txt'); // Uploaded file (random name, validated extension) $path = $storage->store($uploadedFile, 'avatars', 'jpg'); // → "avatars/a1b2c3d4e5f6.jpg"
Security
All paths are validated against directory traversal — ../, absolute paths, and null bytes are rejected.
File names are generated randomly (16 bytes hex), never derived from client filenames.
License
Apache-2.0 — see LICENSE in the main repository.