Storage

S3 Storage

@dsar/storage-s3 connects DSAR to any S3-compatible object store — AWS S3, MinIO, Cloudflare R2, DigitalOcean Spaces, and more.

Installation

Package managerCommand
npmnpm install @dsar/storage-s3
pnpmpnpm add @dsar/storage-s3
yarnyarn add @dsar/storage-s3
bunbun add @dsar/storage-s3

Setup

Configuration

OptionDefaultDescription
bucketS3 bucket name (required)
regionAWS region (required)
endpointCustom endpoint for S3-compatible providers
accessKeyIdExplicit AWS access key
secretAccessKeyExplicit AWS secret key
sessionTokenTemporary session token
forcePathStylefalseUse path-style URLs (for MinIO, etc.)
prefixartifactsKey prefix for all stored objects
timeoutMs3000Request timeout in milliseconds
retryMaxAttempts3Retry count for retriable failures

Key Layout

Default deterministic key format:

Fallback values:

  • missing requestIdrequest-unknown
  • missing manifestIdmanifest-unknown
  • missing categoryuncategorized
  • missing name/id → artifact.bin

Error and Retry Behaviour

CategoryRetriableExamples
timeoutyestimeout, aborted request
rate_limityesthrottling, 429
networkyessocket/connection failures
authnounauthorised, access denied
validationnomalformed key/input
confignoinvalid adapter config
unknownnounmatched provider errors

Manifest Linkage

Storage operations preserve manifest-linked metadata on artifact references:

  • requestId
  • manifestId
  • manifestHash
  • manifestSignature

This metadata is available via putObject results and headObject/getObject metadata for review and audit correlation.

Related