Google Cloud Storage adapter using goth ~> 1.4 (auth) + finch ~> 0.21 (HTTP) +
gcs_signed_url ~> 0.4.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]. :resumable_upload covers broker-owned
initiation plus adapter-side completion verification; the session-scoped atom
widens that to remote status and cancel operations.
See guides/storage_gcs.md (forthcoming) for the full setup walk-through,
including service-account JSON wiring, signed-URL lifecycle, and the
Active-Storage-derived lesson that Content-Disposition / Content-Type live in
GCS object metadata at upload time (NOT in V4 signed URL query params).