# File uploads (/fullstack--file-upload)

/fullstack--file-upload is a Claude Code skill in the Code section. Implements direct uploads to S3 or R2 with presigned URLs, server-side validation, progress tracking and thumbnails.

- Web version: https://skills.sgomez.dev/en/s/fullstack--file-upload
- Section: [Code](https://skills.sgomez.dev/en/code.md)
- Author: Santiago Gómez de la Torre
- License: MIT
- Source: https://github.com/sgomez-dev/claude-skills/blob/main/skills/fullstack/file-upload.md
- Updated 10 Jul 2026

## How to ask for it

- `/fullstack--file-upload upload images straight to S3 from the browser`
- `/fullstack--file-upload add a progress bar and auto-generate thumbnails`
- `/fullstack--file-upload validate that only PDFs under 10MB get uploaded`

## Install

macOS · Linux:

```
curl -fsSL https://raw.githubusercontent.com/sgomez-dev/claude-skills/main/install.sh | bash
```

Windows:

```
irm https://raw.githubusercontent.com/sgomez-dev/claude-skills/main/install.ps1 | iex
```

Claude Code plugin:

```
/plugin marketplace add sgomez-dev/claude-skills
/plugin install fullstack-skills@claude-skills-collection
```

## Permissions

- Reads: `**/*`
- Writes: `src/**`, `app/**`, `apps/**`, `lib/**`, `server/**`, `config/**`, `db/**`, `database/**`, `migrations/**`, `prisma/**`, `resources/**`, `templates/**`, `tests/**`, `test/**`, `spec/**`, `package.json`, `requirements.txt`, `pyproject.toml`, `Gemfile`, `composer.json`, `.env.example`
- Runs: `package manager installs (npm/pnpm/yarn/pip/composer/bundle — these require network)`, `migration generators`, `project test runner`
- Network: No
- Destructive: No

## Author's description

File uploads - presigned direct-to-S3/R2 flow, validation, progress, thumbnails

- [How we review this](https://skills.sgomez.dev/en/methodology.md)
