Skip to content
Appwrite Storage

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

CDN cached
640 × 480 · webp

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

120+ edge locations

Transform

preview?width=640

Processed once

Region cache

fra · region cache

Repeat transforms stay fast

Cache hit

CDN 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.

FilesSettings

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

Zstd

Modern formats on delivery

Serve WebP or AVIF without storing duplicate files.

67% smaller

Original

hero.png · 842 KB

Preview

hero.webp · 278 KB

jpgpngwebpavifheic

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.

FilesSecuritySettings

avatars

Bucket permissions apply to all files

team:design/readteam:design/createrole:developer/update

File security

Enable per-file permissions on individual uploads.

profile-128.webp

user:paige/readuser:toby/read

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.

FilesSettings

Encryption

Encrypt new uploads at rest so leaked files stay unreadable.

Enabled

Applies to new files in this bucket

documentsEncrypted
contract.pdf1.2 MB
backup.zip4.8 MB
credentials.json12 KB

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.

Public link

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.

OverviewFilesSettings

marketing-assets

128 files · 2.1 GB

2 selected
NameSize
hero-banner.webp842 KB
pricing.pdf1.2 MB
team-photo.jpg3.4 MB
Upload
Delete selected

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.

AppServerS3

S3-compatible access

Project-scoped endpoint with SigV4 signing.

SigV4

Endpoint

https://cloud.appwrite.io/v1/s3

Access key

•••••••••••••••

Secret key

••••••••••••••••••••

Works with

rclone
Terraform
AWS CLI
Cyberduck

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

100%
EditCompare

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.

FAQ_

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.