View Source ProcessHub.Storage.RemoteManifest.S3 (ProcessHub v0.7.0)
S3 adapter for ProcessHub.Storage.RemoteManifest, behind the optional
:ex_aws_s3 dependency (with :ex_aws and an HTTP client configured per its
documentation). Works with any S3-compatible store.
Experimental
Part of the experimental declared-children feature; may change in future releases.
Stores one object per hub at <prefix>/<hub_id>.manifest. The stored version
travels in object metadata; store/4 reads it first and refuses to overwrite
a higher version, using a conditional If-Match on the read ETag so a stale
writer cannot clobber a copy that changed in between.
Options
:bucket(required) — bucket name.:prefix— key prefix, default"process_hub/manifest".:request_fun— 1-arity function receiving a request map%{verb: :head | :get | :put, bucket: b, key: k, body: binary | nil, headers: [{name, value}], meta: [{name, value}]}and returning{:ok, %{status_code: n, headers: [...], body: binary}} | {:error, term}(HTTP failures as{:error, {:http_error, status, body}}). Defaults to dispatching throughExAws; injectable for tests and custom signing.