Skip to content

Conversation

@shunping
Copy link
Collaborator

@shunping shunping commented Feb 4, 2026

This is the second part of GCS client library migration for most of the blob/bucket metadata manipulation methods. A parameterized test suite is also added to make sure the behavior of GcsUtil V2 is consistent with V1 as much as it could be.

Objects/Blobs:

  • fileSize()
  • getObject() (deprecated and the new api is getBlob())
  • getObjects() (deprecated and the new api is getBlobs())
  • listObjects() (deprecated and the new api is listBlobs())
  • expand()

Buckets:

  • getBucket() (deprecated and the new api is getBucketWithOptions()
  • bucketAccessible()
  • verifyBucketAccessible()
  • bucketOwner()
  • createBucket()
  • removeBucket()

Notice that:

  • Three other metadata related methods (batch copy, move and delete blobs) will be included in a follow-up PR.
  • Everything is guarded with an feature flag which is disabled by default.

@apache apache deleted a comment from gemini-code-assist bot Feb 4, 2026
@github-actions github-actions bot added the build label Feb 9, 2026
@shunping
Copy link
Collaborator Author

shunping commented Feb 9, 2026

R: @Abacn

@shunping shunping marked this pull request as ready for review February 9, 2026 19:02
@Abacn
Copy link
Contributor

Abacn commented Feb 9, 2026

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a significant step in migrating the GCS client library to the newer version. The approach of using a feature flag and a facade (GcsUtil) to delegate to either the V1 or V2 implementation is sound and allows for a safe, gradual migration. The addition of parameterized integration tests to ensure behavioral consistency between the two versions is excellent.

I have identified a critical bug in the batch getBlobs implementation that could lead to incorrect error messages. Additionally, I've found an opportunity to improve the efficiency and atomicity of the removeBucket method. There's also a minor, but repeated, typo in error messages across several new methods. Addressing these points will further improve the quality of this contribution.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 9, 2026

Assigning reviewers:

R: @Abacn for label java.
R: @Abacn for label build.

Note: If you would like to opt out of this review, comment assign to next reviewer.

Available commands:

  • stop reviewer notifications - opt out of the automated review tooling
  • remind me after tests pass - tag the comment author after tests pass
  • waiting on author - shift the attention set back to the author (any comment or push by the author will return the attention set to the reviewers)

The PR bot will only process comments in the main thread (not review comments).

@shunping shunping requested a review from Abacn February 9, 2026 21:39
@shunping shunping requested a review from Abacn February 11, 2026 20:41
Copy link
Contributor

@Abacn Abacn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants