Skip to main content
Neon Postgres Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

S3 compatibility

Neon Object Storage is compatible with the S3 API for core operations. It works with the AWS SDK for JavaScript (@aws sdk/client s3), boto3, the AWS CLI, and other S3 compatible tools. Not all S3 API ...

Neon Object Storage is compatible with the S3 API for core operations. It works with the AWS SDK for JavaScript (@aws-sdk/client-s3), boto3, the AWS CLI, and other S3-compatible tools. Not all S3 API operations are available.

Operation Notes
ListBuckets Lists all buckets on the current branch
CreateBucket Creates a bucket on the current branch
HeadBucket Checks if a bucket exists
DeleteBucket Bucket must be empty first
ListObjectsV2 Supports prefix, delimiter, max-keys, continuation-token
GetBucketLocation Returns the configured region
GetBucketCors / PutBucketCors / DeleteBucketCors CORS configuration
GetBucketAcl Read-only; returns the stored ACL
GetBucketPolicy Read-only; returns the stored policy
GetBucketTagging / PutBucketTagging / DeleteBucketTagging Tag management
GetBucketVersioning Returns stored config; versioning is not enforced
GetBucketLifecycle / PutBucketLifecycle / DeleteBucketLifecycle Config is stored but rules are not enforced
GetObjectLockConfiguration / PutObjectLockConfiguration Config is stored; enforcement is limited
GetPublicAccessBlock / PutPublicAccessBlock / DeletePublicAccessBlock Supported
Operation Notes
GetObject Supports Range header for partial reads
HeadObject Returns object metadata
PutObject Supports Content-Type, Content-Disposition, Cache-Control, custom x-amz-meta-* headers
DeleteObject Soft-deletes the object on the current branch
DeleteObjects Batch delete up to 1,000 keys per request
GetObjectAcl Read-only
GetObjectTagging / PutObjectTagging / DeleteObjectTagging Tag management
GetObjectAttributes Returns ETag, size, and checksum
Operation Notes
CreateMultipartUpload Initiates a multipart upload
UploadPart Uploads a single part
UploadPartCopy Copies a part from another object
CompleteMultipartUpload Finalises the upload
AbortMultipartUpload Cancels and cleans up
ListMultipartUploads Lists in-progress uploads
ListParts Lists uploaded parts for an in-progress upload
Operation Notes
Presigned GET / PUT Supported via X-Amz-Algorithm=AWS4-HMAC-SHA256 query parameters
Browser form uploads (POST) Supported
Presigned URL expiry Configurable via X-Amz-Expires
Operation Notes
OPTIONS preflight Handled automatically
GetBucketCors / PutBucketCors / DeleteBucketCors Full CORS rule management

The following operations return 501 Not Implemented:

Operation Category
PutBucketAcl, PutBucketPolicy, PutObjectAcl ACL/policy writes via S3 wire
GetBucketNotificationConfiguration, PutBucketNotificationConfiguration Event notifications
GetBucketLogging, PutBucketLogging Server-side logging
GetBucketEncryption, PutBucketEncryption Encryption configuration
GetBucketReplication, PutBucketReplication Cross-region replication
GetBucketWebsite, PutBucketWebsite Static website hosting
GetBucketAccelerateConfiguration, PutBucketAccelerateConfiguration Transfer acceleration
SelectObjectContent S3 Select queries
RestoreObject Glacier restore
GetObjectTorrent BitTorrent
  • Path-style addressing only. Virtual-hosted-style requests (bucket.host/key) are not supported. Always set forcePathStyle: true in the AWS SDK for JavaScript, or use endpoint_url in boto3.
  • SigV4 only. AWS Signature Version 2 (SigV2) is not supported.
  • Lifecycle rules stored but not enforced. PutBucketLifecycle accepts and stores configuration, but expiration and transition rules do not run.
  • Versioning stored but not enforced. Versioning configuration is stored and echoed. Objects always return x-amz-version-id: null.
  • No bucket notifications. SNS/SQS integration is not available.
  • Branches, not regions. Buckets are scoped to a branch, not an AWS region. GetBucketLocation returns the configured region string but bucket selection is always branch-based.

Join our Discord Server to ask questions or see what others are doing with Neon. For paid plan support options, see Support.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu