install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/noartem/skills/laravel-filesystem-uploads-and-urls" ~/.claude/skills/comeonoliver-skillshub-laravel-filesystem-uploads-and-urls && rm -rf "$T"
manifest:
skills/noartem/skills/laravel-filesystem-uploads-and-urls/SKILL.mdsource content
Filesystem Uploads and URLs
Use the Storage facade consistently; abstract away the backend (local, S3, etc.).
Commands
$path = Storage::disk('public')->putFile('avatars', $request->file('avatar')); // Temporary URLs (S3, etc.) $url = Storage::disk('s3')->temporaryUrl($path, now()->addMinutes(10)); // Streams return Storage::disk('backups')->download('db.sql.gz');
Patterns
- Keep user uploads under a dedicated disk with explicit
visibility - Avoid assuming local paths; always go through Storage
- For public assets, run
and serve via web server / CDNstorage:link - Validate mime/types and size limits at upload boundaries