Add Google Cloud Storage (GCS) backend support#13
Merged
richardartoul merged 2 commits intorichardartoul:mainfrom Mar 13, 2026
Merged
Add Google Cloud Storage (GCS) backend support#13richardartoul merged 2 commits intorichardartoul:mainfrom
richardartoul merged 2 commits intorichardartoul:mainfrom
Conversation
- Implement GCS backend with full Backend interface support - Add GCS configuration flags and environment variables - Include integration tests for GCS backend - Document GCS usage, authentication, and Anywhere Cache setup - Update README with GCS performance guidance and best practices GCS backend provides a GCP-native alternative to S3, with optional Anywhere Cache support for improved read performance.
Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gcsbackend type powered by the Google Cloud Storage Go SDK, implementingGet,Put,Close, andClearoperations with full parity to the existing S3 backendstorage.WithJSONReads()for GCS Anywhere Cache compatibility, enabling single-digit-ms zonal read latency comparable to S3 Express One Zone-gcs-bucket,-gcs-prefix) andGOBUILDCACHE_GCS_BUCKET/GOBUILDCACHE_GCS_PREFIXenvironment variables through all commands (server, clear, clear-local, clear-remote)examples/github_actions_gcs.yml) and integration tests (integrationtests/integration_gcs_test.go)Test plan
gobuildcache --backend=gcs --gcs-bucket=<bucket>works end-to-end against a real GCS bucketgobuildcache clear-remote --backend=gcs --gcs-bucket=<bucket>clears objectsGOBUILDCACHE_GCS_BUCKET,GOBUILDCACHE_GCS_PREFIX) worksgo test ./integrationtests/ -run TestGCS -tags=integration