Skip to content

PutOptions

Defined in: src/persistence/object-storage/ObjectStorageBackend.ts:18

Generic object-storage abstraction — the same surface that an S3-style service exposes (PUT / GET / DELETE / LIST), reduced to the minimum actor-ts needs. Two implementations ship: FilesystemObjectStorage Backend for tests and local dev, S3ObjectStorageBackend for any S3-compatible service (AWS S3, MinIO, Cloudflare R2, Backblaze B2, …).

The ifMatch / ifNoneMatch options exist to support optimistic concurrency control — required by ObjectStorageDurableStateStore to detect concurrent writers. Backends that can’t honour them (e.g. some older S3-compatible stores) must throw ObjectStorageBackendError with a clear message rather than silently ignoring them, so callers know their CAS expectation was lost.

readonly optional contentEncoding?: string

Defined in: src/persistence/object-storage/ObjectStorageBackend.ts:21

Set when the body is compressed; matches the HTTP Content-Encoding header.


readonly optional contentType?: string

Defined in: src/persistence/object-storage/ObjectStorageBackend.ts:19


readonly optional ifMatch?: string

Defined in: src/persistence/object-storage/ObjectStorageBackend.ts:27

Strict CAS: the operation succeeds only if the object’s current ETag matches. Mismatch → ObjectStorageConcurrencyError. S3 maps this to the If-Match request header.


readonly optional ifNoneMatch?: "*"

Defined in: src/persistence/object-storage/ObjectStorageBackend.ts:32

Create-only — succeed only if the object does NOT yet exist. The sentinel '*' matches S3’s If-None-Match: * semantics.


readonly optional sse?: { kmsKeyId: string; } | "AES256"

Defined in: src/persistence/object-storage/ObjectStorageBackend.ts:37

Server-side encryption hint. Only honoured by S3-style backends; filesystem backends ignore it.