File storage with delivery built in_
Upload, organize, and serve images, videos, documents, and other assets through Appwrite CDN. Resize, crop, and convert formats on the fly, compress and encrypt at the bucket level, and share with granular permissions.
- 120+ edge locations
- CDN
- On-the-fly delivery
- Transforms
- Compatible object access
- S3
- gzip and zstd buckets
- Compression
- At-rest protection
- Encryption
On-the-fly image transformations
Use the preview endpoint to resize, crop, convert format, set quality, add borders, and rotate images on demand. No pre-processing pipeline or duplicate files.
Preview endpoint
getFilePreview()
sunset.png
/v1/storage/buckets/photos/files/sunset/preview
width
640
height
480
gravity
center
quality
85
output
webp
rotation
0
Resize, crop, format, quality, borders, and rotation. No duplicate uploads.
CDN delivery built in
Every storage file and transformed preview is served through Appwrite CDN with 120+ edge locations worldwide. Transformed images are cached in your project region first, so repeat requests skip re-processing and reach users faster.
Network
Storage delivery
Global CDN included. Transformed images cached in your project region before they reach the edge.
Delivery path
Transform
preview?width=640
Processed once
Region cache
fra · region cache
Repeat transforms stay fast
Cache hitCDN edge
Nearest PoP
Low latency worldwide
Storage files and transformed previews inherit Appwrite CDN delivery and regional caching automatically. No separate CDN setup required.
Compression and image format optimization
Lower storage costs, cut bandwidth, and speed up page loads without a separate media pipeline. Enable gzip or zstd per bucket to compress uploads automatically, then serve WebP, AVIF, and other modern formats from the preview endpoint. Keep one original upload and optimize file size every time you deliver it.
Store less, transfer less, load faster. One upload, optimized on every delivery.
Bucket compression
gzip or zstd shrinks stored files and outbound traffic automatically.
Algorithm
Modern formats on delivery
Serve WebP or AVIF without storing duplicate files.
Original
hero.png · 842 KB
Preview
hero.webp · 278 KB
Granular permissions at bucket and file level
Integrate Storage with Auth users, teams, and roles. Set bucket-wide defaults and per-file rules from the Console Security tab so the right people can read, create, update, or delete files.
avatars
Bucket permissions apply to all files
File security
Enable per-file permissions on individual uploads.
profile-128.webp
File-level rules override bucket defaults for sensitive assets.
Encryption at rest
Turn on bucket encryption from Settings so new uploads are stored encrypted at rest. If files are exposed, encrypted objects stay unreadable without your project keys.
Encryption
Encrypt new uploads at rest so leaked files stay unreadable.
Enabled
Applies to new files in this bucket
File tokens for expiring public links
Share files with token-based preview, view, and download URLs that work without session cookies. Set an expiry date or keep links open-ended for external viewers.
File detail
report-q4.pdf
File tokens
Share without session cookies or bucket permissions.
Preview URL
…/files/report-q4/preview?token=8f3a…c21d
Expires
Apr 30, 2026
Access
Preview · View · Download
Works for external viewers without third-party cookie issues.
Bucket-based file management at scale
Organize uploads in isolated buckets with upload, download, list, and delete APIs. Browse files in the Console with search, pagination, and bulk operations.
marketing-assets
128 files · 2.1 GB
S3-compatible object access
Connect Appwrite Storage to rclone, Terraform, and custom pipelines with a project-scoped HTTPS endpoint and SigV4-compatible signing. Copy credentials from the Console Connect tab and keep your existing S3 workflows.
S3-compatible access
Project-scoped endpoint with SigV4 signing.
Endpoint
https://cloud.appwrite.io/v1/s3
Access key
•••••••••••••••
Secret key
••••••••••••••••••••
Works with
Attach Storage to existing object-storage pipelines without rebuilding upload flows.
Image transform wizard and presets
Build transforms visually in the Console, preview results live, and save presets for reuse across your team. Ship optimized images without writing transformation code.
hero-banner.webp
640 × 360 · webp
842 KB278 KB · 33% of original
Tools built for developers and agents_
API-first by design. Use the Console, Realtime, SDKs, CLI, Terraform, MCP, and agent skills on the same project.
Developer and agent experience
A typical integration in TypeScript.
import { Client, Storage, ID } from 'appwrite';
const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') .setProject('<PROJECT_ID>');
const storage = new Storage(client);
const file = await storage.createFile({ bucketId: 'avatars', fileId: ID.unique(), file: input.files[0],});
console.log(file.$id);Everything is an API
REST, GraphQL, and SDKs for every service. Automate and integrate without console-only workflows.
Console
Manage every service in your project from a unified Console. Optimized keyboard access and a Command Center keep you moving fast.
Realtime
Subscribe to live events and react to changes as they happen.
buckets.*.files.*
buckets.*.files.*.create
MCP
Connect AI agents to your Appwrite project, APIs, and docs through MCP servers.
appwrite-docs
appwrite-apiTerraform
Manage Appwrite infrastructure as code with the official provider.
terraform plan
terraform applyAgent skills
Give AI agents SDK-accurate knowledge of Appwrite services and APIs.
npx skills add appwrite/agent-skillsSDKs
Client and server SDKs for the platforms your team already uses. 15 official SDKs available across client and server runtimes.
CLI
Deploy resources, manage projects, and generate typed SDKs from your terminal.
appwrite login
appwrite deployFAQ_
Storage is for binary files like images, videos, and PDFs. Databases store structured rows and fields. Most apps use both together: Storage for assets and Databases for metadata and relationships.
Start building with Storage_
Create a bucket, upload your first file, and generate a preview URL in minutes.
Explore Appwrite_
Modular backend services that share the same project, permissions model, and console.