neon-object-storage

Provision and manage S3-compatible object storage that branches with Neon Postgres projects.

Updated Sep 13, 2026
One-click install
npx skills add https://github.com/Abhi-0930/online--lms --skill neon-object-storage-abhi-0930
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: neon-object-storage
Source: https://github.com/Abhi-0930/online--lms/tree/main/backend/.agents/skills/neon-object-storage
Command: npx skills add https://github.com/Abhi-0930/online--lms --skill neon-object-storage-abhi-0930

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires files-sdk, @aws-sdk/client-s3, @aws-sdk/s3-presigned-post, @aws-sdk/s3-request-presigner.

What problem does it solve? Applications on Neon Postgres often need file storage for uploads, avatars, and documents, but adding a separate provider like AWS S3 or Cloudflare R2 introduces extra accounts, credentials, and drift between files and database rows across environments. This Skill sets up S3-compatible object storage that branches alongside the database, keeping files and rows in sync across dev, preview, and production branches. ## Core Features & Use Cases - Branch-aware buckets: Declare private or public_read buckets in a neon.ts infrastructure-as-code file and provision them with neon deploy, with copy-on-write storage inherited by child branches. - Standard S3 tooling: Works with the AWS SDKs, boto3, the AWS CLI, and presigned URLs using injected AWS-standard environment variables, with path-style addressing enforced. - Files SDK integration: Provides a unified upload, download, list, copy, delete, and presign API through the files-sdk neon adapter. - Use Case: An agent generates an image, uploads it to the images bucket, stores the object key in a Postgres row on the same branch, and returns a presigned URL on read, so a preview branch inherits a consistent snapshot of both rows and files. ## Quick Start Ask the AI to set up a Neon Object Storage bucket for user uploads and wire an S3 client to the injected environment variables.

Frequently Asked Questions about neon-object-storage

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up object storage with Neon Postgres?▼

Declare buckets under the buckets key in a neon.ts config file, then run neon deploy to provision them on the linked branch. Neon injects AWS-standard env vars like AWS_ACCESS_KEY_ID and AWS_ENDPOINT_URL_S3, which you pull locally with neon env pull.

How to upload files to Neon Object Storage from Node.js?▼

Use the files-sdk neon adapter with only the bucket name, or the AWS S3Client with forcePathStyle set to true. Credentials, endpoint, and region are read automatically from the injected AWS-standard environment variables.

Does Neon Object Storage work with the AWS SDK and presigned URLs?▼

Yes, Neon Object Storage speaks the S3 API, so AWS SDKs, boto3, the AWS CLI, and presigned URLs all work. It requires path-style addressing and SigV4 signing, so set forcePathStyle to true on the S3 client.

Neon Object Storage vs AWS S3 or Cloudflare R2 for file uploads?▼

Neon Object Storage branches copy-on-write alongside your Postgres data, so preview branches get consistent snapshots of rows and files with one credential system. Choose standalone S3 or R2 when you are not on Neon or need regions beyond us-east-2 and eu-central-1.

What are the limitations of Neon Object Storage?▼

It is currently available only in us-east-2 and eu-central-1 regions. It does not support static website hosting since PutBucketWebsite returns 501, so public assets should sit behind a CDN and app code should be hosted on Vercel, Netlify, or Cloudflare.

How do I debug Neon Object Storage bucket operations?▼

Query built-in branch logs with neon logs query --branch <name> --source storage --since 1h. Logs are scoped to a single branch, so pass --branch when the bucket is not on your currently checked-out branch.