Skip to main content
Yboard provides S3-compatible cloud storage for files, images, and any binary assets your app needs.

Overview

Every Yboard project includes cloud storage powered by AWS S3. Files are organized into buckets with configurable access policies.

Technology Stack

Bucket Configuration

Bucket Types

Upload Strategies

Direct Upload to S3

Files are uploaded through the Yboard API which proxies to S3:
For larger files, use presigned URLs to upload directly to S3:
  1. Request a presigned URL from the API
  2. Upload the file directly to S3 using the URL
  3. Confirm the upload with Yboard

File Operations

Upload Flow

  1. Client requests upload (direct or presigned)
  2. File is stored in the bucket
  3. Metadata is saved to the storage.objects table
  4. A URL is returned for accessing the file

Download Flow

  1. Client requests a file by bucket and key
  2. For private buckets, authentication is verified
  3. A presigned download URL is generated
  4. File is served via S3/CloudFront

Security Features

  • Presigned URLs with configurable expiration
  • Bucket-level access control (public vs private)
  • Authentication required for private bucket operations
  • Content type validation on uploads
  • File size limits per project plan

Performance Optimizations

  • CloudFront CDN for edge-cached delivery
  • Presigned URLs bypass the API for large uploads/downloads
  • Automatic compression for supported content types
  • Multi-part uploads for files over 5MB

Best Practices

  1. Use presigned URLs for files larger than 1MB
  2. Set appropriate content types to ensure correct browser handling
  3. Use private buckets for user-generated content
  4. Organize with key prefixes like user-{id}/ for easy management
  5. Set file size limits appropriate to your use case