Adapter

Amazon S3

Overview

The S3 adapter targets Amazon S3 and any S3-compatible provider. Snapshots and forks land as sibling buckets populated by server-side CopyObject; siblings are co-located in the parent’s region via GetBucketLocation.

Manifest lineage lives at .storagesdk.metadata.json at the root of each bucket, filtered out of list() results.

Configuration

import { Storage } from '@storagesdk/core';
import { s3 } from '@storagesdk/adapters/s3';

const storage = new Storage({
  adapter: s3({
    bucket: 'agent-runs',
    region: 'us-east-1',
    credentials: {
      accessKeyId: process.env.AWS_ACCESS_KEY_ID,
      secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
    },
  }),
});
s3({
  bucket: string;
  region?: string;
  endpoint?: string;
  forcePathStyle?: boolean;
  credentials?: {
    accessKeyId: string;
    secretAccessKey: string;
    sessionToken?: string;
  };
});

Notes

Compatibility

CapabilitySupport
SnapshotsSibling buckets via server-side CopyObject
ForksSibling buckets via server-side CopyObject
Byte-range reads
Multipart upload
Enforced upload limits
User metadata
Signed URLs