basalt / storage-s3/src / S3DriverOptions
Interface: S3DriverOptions
Defined in: storage-s3/src/index.ts:60
Multipart knobs. Settable on the driver (a default for every upload) and per S3StorageDriver.putStream call, which wins.
Extends
Properties
bucket
> bucket: string
Defined in: storage-s3/src/index.ts:61
credentials?
> optional credentials?: object
Defined in: storage-s3/src/index.ts:65
accessKeyId
> accessKeyId: string
secretAccessKey
> secretAccessKey: string
endpoint?
> optional endpoint?: string
Defined in: storage-s3/src/index.ts:64
Custom endpoint — set this to use MinIO or any S3-compatible service.
forcePathStyle?
> optional forcePathStyle?: boolean
Defined in: storage-s3/src/index.ts:70
Path-style URLs (http://host/bucket/key) instead of virtual-hosted style. Defaults to true when an endpoint is set (required by MinIO).
partSizeBytes?
> optional partSizeBytes?: number
Defined in: storage-s3/src/index.ts:52
Bytes per part. Defaults to 5 MiB — S3's minimum for every part but the last, and therefore the lowest value accepted. Larger parts mean fewer requests and more memory: up to partSizeBytes × queueSize is in flight.
Inherited from
S3MultipartOptions.partSizeBytes
queueSize?
> optional queueSize?: number
Defined in: storage-s3/src/index.ts:54
Parts uploaded in parallel. Defaults to 4. Must be at least 1.
Inherited from
region?
> optional region?: string
Defined in: storage-s3/src/index.ts:62
serverSideEncryption?
> optional serverSideEncryption?: S3ServerSideEncryption
Defined in: storage-s3/src/index.ts:78
Server-side encryption sent with every put and signed into every pre-signed upload URL. Unset: no SSE headers are sent and the bucket's default encryption applies — configuring default encryption on the bucket is the simplest alternative (and AWS encrypts new objects with SSE-S3 by default). Set { kms } when objects must use a specific KMS key.
signingEndpoint?
> optional signingEndpoint?: string
Defined in: storage-s3/src/index.ts:90
Default base endpoint for pre-signed URLs, when the host that SERVES the bucket differs from the one this process talks to. The classic split: the API reaches MinIO at http://minio:9000 inside the container network while browsers and isolated workers must use the public name.
Applies to temporaryUrl and temporaryUploadUrl; a per-call endpoint wins over it. Region, path style, credentials and SSE are unchanged — only the host the signature is computed for. Point it at the SAME bucket under another name; never at a third party.