# Laravel Config Env Storage

> Portable storage configuration across S3/R2/MinIO with optional CDN—env toggles, path-style endpoints, and URL generation

- Skill: `noartem/laravel-config-env-storage` (Agent Skill)
- Install (CLI): `npx skillmds add noartem/laravel-config-env-storage`
- Raw SKILL.md: https://api.skillmd.com/api/skills/noartem/laravel-config-env-storage/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: noartem (https://skillmd.com/u/noartem)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/noartem/laravel-config-env-storage

---


# Storage Config (S3/R2/MinIO/CDN)

Configure storage once; switch providers via env.

## Env

```
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_DEFAULT_REGION=auto
AWS_BUCKET=...
AWS_ENDPOINT=https://r2.example.com       # for R2/MinIO
AWS_USE_PATH_STYLE_ENDPOINT=true          # if required
MEDIA_CDN_URL=https://cdn.example.com     # optional CDN/base URL
```

## Tips

- Prefer pre‑signed URLs for uploads/downloads when possible
- For CDN, prefix public URLs with `MEDIA_CDN_URL` (app URL generation helper)
- Use path‑style only when necessary; some providers require it

## Testing

- Fake storage in unit tests (`Storage::fake('s3')`)
- Integration tests verify URL formats and ACLs

