Skip to content

Use GoCloud interface for S3 access

In !555 (merged), we are adding Azure blob storage support via the Go Cloud Development Kit (https://github.com/google/go-cloud), which is nice since it allows us to easily add new blob stores without changing too much.

S3 is a little bit complicated to support in this way because:

  1. We load credentials from the Workhorse config file, but we also receive more details of the bucket (e.g. path style, endpoint, etc.) from the Rails API.
  2. We load server side encryption headers. See https://github.com/google/go-cloud/issues/2802.