Skip to content

Conversation

@l1n
Copy link

@l1n l1n commented Oct 31, 2025

This commit adds native gRPC support for Google Cloud Storage operations using the official cloud.google.com/go/storage library (v1.46.0+).

Changes:

  • Added cloud.google.com/go/storage dependency to go.mod
  • Created new GCS storage backend (storage/gcs.go) with gRPC support
  • Implemented Storage interface methods: Stat, List, Delete, MultiDelete, Copy
  • Added --use-grpc CLI flag to enable gRPC for GCS operations
  • Updated storage.Options to include UseGRPC field
  • Modified storage factory to use gRPC client when flag is enabled

Usage:
s5cmd --use-grpc ls gs://bucket/prefix s5cmd --use-grpc cp gs://bucket/src gs://bucket/dst

The gRPC client automatically uses direct connectivity when running on Google Cloud (via ALTS) and provides better performance compared to the S3-compatible API approach.

This commit adds native gRPC support for Google Cloud Storage operations
using the official cloud.google.com/go/storage library (v1.46.0+).

Changes:
- Added cloud.google.com/go/storage dependency to go.mod
- Created new GCS storage backend (storage/gcs.go) with gRPC support
- Implemented Storage interface methods: Stat, List, Delete, MultiDelete, Copy
- Added --use-grpc CLI flag to enable gRPC for GCS operations
- Updated storage.Options to include UseGRPC field
- Modified storage factory to use gRPC client when flag is enabled

Usage:
  s5cmd --use-grpc ls gs://bucket/prefix
  s5cmd --use-grpc cp gs://bucket/src gs://bucket/dst

The gRPC client automatically uses direct connectivity when running on
Google Cloud (via ALTS) and provides better performance compared to the
S3-compatible API approach.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants