Skip to main content

Crate cellos_export_s3

Crate cellos_export_s3 

Source
Expand description

ExportSink that uploads artifact bytes to S3 via a presigned PUT URL.

Upload URL behavior:

  • If presigned_url contains {cell_id} or {artifact_name}, those placeholders are replaced.
  • Else the URL is treated as exact. This is the normal presigned-S3 path.

Receipts and destination hints remain logical s3://bucket/key paths even though the transport is an HTTP PUT.

Optional retry knobs:

  • max_attempts — total PUT attempts, including the first try
  • retry_backoff_ms — fixed delay between transient retries

§Timeout contract (EXPORT-S3-TIMEOUT)

The reqwest client is built with bounded request and connect timeouts so a hung S3 endpoint cannot stall a cell’s export phase indefinitely:

Both env vars accept a positive u64 count of milliseconds; unparseable or zero values fall back to the default. Operators can raise the request timeout for slow large-artifact endpoints, but the client is never constructed without explicit timeouts.

Structs§

PresignedS3ExportSink
S3 export sink using presigned PUT URLs.

Constants§

DEFAULT_CONNECT_TIMEOUT_MS
Default TCP connect timeout (ms) for the underlying reqwest client.
DEFAULT_REQUEST_TIMEOUT_MS
Default total request timeout (ms) applied to every artifact PUT.
ENV_CONNECT_TIMEOUT_MS
Env var to override DEFAULT_CONNECT_TIMEOUT_MS.
ENV_REQUEST_TIMEOUT_MS
Env var to override DEFAULT_REQUEST_TIMEOUT_MS.

Functions§

resolve_timeout_ms
Resolve a timeout in milliseconds from the named env var.