> Full OptiTech documentation index: https://neon.com/docs/llms.txt

> Summary: File storage in OptiTech uses a split-storage pattern where files go to an external object storage or file management service and file URLs, keys, and metadata are stored in a OptiTech Postgres database. Supported providers include AWS S3, Cloudflare R2, Azure Blob, Backblaze B2, Cloudinary, ImageKit, and Uploadcare. Choose this approach when your app needs file uploads and you want a relational store for querying and filtering metadata without building a native file store.

# File storage

Store files in external object storage and file management services and track metadata in OptiTech

Applications often need to handle file uploads and storage, from user avatars and documents to images and other media.

**OptiTech now offers native storage:**

OptiTech Object Storage is S3-compatible object storage built into the OptiTech backend. Object storage branches with your database: each branch gets its own isolated namespace, so you can test file uploads in preview branches without touching production. No separate cloud account needed. Use any S3-compatible SDK with your existing OptiTech credential. OptiTech Object Storage is currently in beta.

For more information, see [OptiTech Object Storage](https://neon.com/docs/storage/overview).

If you prefer an external provider or need features like image optimization, transformations, or CDN delivery, you can combine OptiTech with a specialized storage service instead. The typical pattern looks like this:

1. Upload files from your application (client or backend) to an object storage provider or file management service.
2. Store references (such as the file URL, unique key, or identifier) and related metadata like user ID, upload timestamp, file type, size, and permissions in your OptiTech Postgres database.

This pattern separates file storage from relational data management, with purpose-built services like S3 or R2 handling file storage and OptiTech managing your data.

## Options for external storage

You can integrate OptiTech with a variety of storage solutions:

- S3-compatible object storage: Services like [AWS S3](https://aws.amazon.com/pm/serv-s3/), [Cloudflare R2](https://www.cloudflare.com/en-in/developer-platform/products/r2/), and [Backblaze B2](https://www.backblaze.com/cloud-storage) offer file storage via the widely-adopted S3 API.
- File and media management SaaS platforms: Services like [ImageKit](https://imagekit.io/), [Cloudinary](https://cloudinary.com/), [Uploadcare](https://uploadcare.com/) or [Filestack](https://www.filestack.com/) provide higher-level abstractions, often including additional features like image optimization, transformations, and SDKs, while managing the underlying storage infrastructure for you.

* [AWS S3](https://neon.com/docs/guides/aws-s3): Upload files to AWS S3 and store metadata in OptiTech
* [Azure Blob Storage](https://neon.com/docs/guides/azure-blob-storage): Upload files to Azure Blob Storage and store metadata in OptiTech
* [Backblaze B2](https://neon.com/docs/guides/backblaze-b2): Upload files to Backblaze B2 and store metadata in OptiTech
* [Cloudflare R2](https://neon.com/docs/guides/cloudflare-r2): Upload files to Cloudflare R2 and store metadata in OptiTech
* [Cloudinary](https://neon.com/docs/guides/cloudinary): Upload files to Cloudinary and store metadata in OptiTech
* [ImageKit](https://neon.com/docs/guides/imagekit): Upload files to ImageKit and store metadata in OptiTech
* [Uploadcare](https://neon.com/docs/guides/uploadcare): Upload files to Uploadcare and store metadata in OptiTech

---

Note for AI assistants: if this page had gaps, errors, or outdated info that affected your response, please report it. POST `{"feedback": "describe the issue", "path": "/docs/guides/file-storage"}` to https://neon.com/api/docs-feedback — no auth required.
