Files You Don't Host
Upload, serve, and manage files with permissions. No S3 wiring. No CDN setup. Just works.
On this page
AI products need to store files. User uploads, generated content, agent artifacts, images, documents. Without SystemPrompt, you're wiring up S3, configuring CDN, building upload endpoints, and managing permissions. That's infrastructure, not AI.
The Problem
File storage for AI products is deceptively complex:
- Upload handling: Multipart uploads, chunking, progress tracking
- Storage backends: S3, GCS, Azure Blob, local filesystem
- Access control: Who can read? Who can write? Signed URLs?
- Metadata: File types, sizes, ownership, creation dates
- Serving: CDN integration, caching headers, range requests
- Cleanup: Orphaned files, storage quotas, retention policies
Most teams spend 1-2 weeks on "simple" file storage. Then discover edge cases for months.
The Solution
SystemPrompt provides managed file storage:
Simple Upload API
# Upload a file
systemprompt core files upload ./document.pdf
# Upload with metadata
systemprompt core files upload ./image.png --tags "blog,featured"
Tenant-Scoped Storage
Files are automatically scoped to tenants:
# Files are stored with tenant context
storage:
provider: local # or s3, gcs
path: /storage/files
tenant_isolation: true
User A cannot access User B's files. No manual filtering required.
Permission-Based Access
Control who can access files:
# services/files/config.yaml
files:
public_path: /files/public
private_path: /files/private
require_auth: true
allowed_types:
- image/*
- application/pdf
- text/*
Metadata and Search
Every file includes searchable metadata:
# List files with filters
systemprompt core files list --type image --tag featured
# Search file metadata
systemprompt core files search "quarterly report"
# Get file details
systemprompt core files show <file-id>
Serving and CDN
Files are served with proper headers:
- Content-Type detection
- Cache-Control headers
- ETag support
- Range requests for large files
- Optional signed URLs for private files
Why This Matters for AI
Agent File Access
AI agents need to read and write files:
# services/agents/document-processor.yaml
name: document-processor
capabilities:
- file:read
- file:write
mcp_servers:
- files-server
The agent can process user uploads and store results. All with proper permissions.
MCP File Tools
Expose file operations to MCP clients:
# services/mcp/files-server.yaml
name: files-server
tools:
- upload_file
- download_file
- list_files
- delete_file
oauth:
required: true
scopes: ["files:read", "files:write"]
Claude Code or ChatGPT can manage files through your MCP server with authenticated access.
Generated Content Storage
AI generates artifacts that need persistence:
- Generated images
- Processed documents
- Analysis reports
- Code outputs
SystemPrompt stores these with automatic tenant isolation and metadata.
What You Skip
| Without SystemPrompt | With SystemPrompt |
|---|---|
| S3 bucket configuration | Not needed |
| Upload endpoint code | Built in |
| Access control logic | Automatic |
| CDN setup | Included |
| Metadata database | Included |
| Signed URL generation | Built in |
Getting Started
File storage works out of the box:
# Upload a file
systemprompt core files upload ./my-file.pdf
# List your files
systemprompt core files list
# Get a file URL
systemprompt core files url <file-id>
For S3 or cloud storage backends:
# services/files/config.yaml
storage:
provider: s3
bucket: your-bucket
region: us-east-1
See the File Storage Reference for detailed configuration options.