Google Cloud Storage adapter using goth ~> 1.4 (auth) + finch ~> 0.21 (HTTP) +
gcs_signed_url ~> 0.6 (V4 signing).
Setup
Add Goth and Finch to your supervision tree (Rindle does not start them):
children = [
{Goth, name: MyApp.Goth, source: {:service_account, json_creds}},
{Finch, name: MyApp.Finch}
]Configure the adapter:
config :rindle, Rindle.Storage.GCS,
bucket: "my-bucket",
goth: MyApp.Goth,
finch: MyApp.Finch,
signing_key: System.fetch_env!("GCS_SERVICE_ACCOUNT_JSON") |> Jason.decode!(),
signed_url_ttl: 3600Capabilities
This adapter advertises [:signed_url, :head, :resumable_upload, :resumable_upload_session, :concatenate]. :resumable_upload covers
broker-owned initiation plus adapter-side completion verification; the
session-scoped atom widens that to remote status and cancel operations.
:concatenate composes stored upload parts into a final object through the
GCS compose API.
See guides/storage_gcs.md for the full setup walk-through, including
service-account JSON wiring, signed-URL lifecycle, and why Content-Disposition
/ Content-Type belong in GCS object metadata at upload time rather than V4
signed-URL query parameters.