Tutorial: File Uploads

Implement secure file uploads with image processing, storage, and delivery.

What You'll Build

  • Presigned URL uploads to S3/R2
  • Image processing and optimization
  • File type validation
  • Progress tracking
  • CDN delivery

Prerequisites

  • Next.js project
  • AWS S3 or Cloudflare R2 account
  • Bootspring initialized

Time Required

Approximately 30 minutes.

Step 1: Set Up Storage

Option A: AWS S3

Loading code block...

Option B: Cloudflare R2

Loading code block...

Step 2: Apply Storage Skill

Loading code block...

Step 3: Install Dependencies

Loading code block...

Step 4: Create Storage Client

Loading code block...

Step 5: Create Upload API

Loading code block...

Step 6: Create Upload Component

Loading code block...

Step 7: Add Image Processing

Loading code block...

Step 8: Create Avatar Upload Component

Loading code block...

Step 9: Test Uploads

  1. Start development server:

    Loading code block...
  2. Navigate to a page with the upload component

  3. Test:

    • File selection works
    • Drag and drop works
    • Progress updates correctly
    • Success state shows
    • Error handling works
    • File appears in S3/R2

Verification Checklist

  • Presigned URLs generate correctly
  • Upload progress tracks accurately
  • File validation works
  • Images display from CDN
  • Error states handled

What You Learned

  • Presigned URL uploads
  • S3/R2 integration
  • File validation
  • Progress tracking
  • Image processing

Next Steps