Skip to content

feat(storage): update request models for appendable upload - #5957

Merged
vsharonlynn merged 1 commit into
googleapis:mainfrom
vsharonlynn:appendable_upload_4
Jul 21, 2026
Merged

feat(storage): update request models for appendable upload#5957
vsharonlynn merged 1 commit into
googleapis:mainfrom
vsharonlynn:appendable_upload_4

Conversation

@vsharonlynn

@vsharonlynn vsharonlynn commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

This PR comes after PR #6002 .

@product-auto-label product-auto-label Bot added the api: storage Issues related to the Cloud Storage API. label Jun 28, 2026

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

Copy link
Copy Markdown
Contributor

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 implements bidirectional streaming writes (Bidi Write) for Google Cloud Storage, introducing the AppendableObjectWriter along with request builders OpenAppendableObject and ReopenAppendableObject to support appending data to objects. It includes a background Worker to manage the gRPC stream, a Connector to handle connection handshakes and routing redirects, and comprehensive unit and integration tests. The review feedback highlights two opportunities in connector.rs to improve error handling by replacing .expect() calls with safe error propagation using ? when converting parameters to proto format.

Comment thread src/storage/src/storage/bidi_write/connector.rs Outdated
Comment thread src/storage/src/storage/bidi_write/connector.rs Outdated
@codecov

codecov Bot commented Jun 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.55%. Comparing base (c951bb8) to head (325dfe0).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #5957   +/-   ##
=======================================
  Coverage   96.55%   96.55%           
=======================================
  Files         257      259    +2     
  Lines       65173    65173           
=======================================
+ Hits        62927    62930    +3     
+ Misses       2246     2243    -3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread tests/storage/src/bidi_write.rs Outdated
Comment thread tests/storage/src/bidi_write.rs Outdated
Comment thread tests/storage/src/bidi_write.rs Outdated
@vsharonlynn
vsharonlynn force-pushed the appendable_upload_4 branch 7 times, most recently from 7e41183 to 5e066c1 Compare June 29, 2026 17:24
@vsharonlynn

Copy link
Copy Markdown
Contributor Author

I ran

$ cargo +nightly public-api -p google-cloud-storage diff origin/main..HEAD

The output is:

Removed items from the public API
=================================
(none)

Changed items in the public API
===============================
(none)

Added items to the public API
=============================
(none)

@vsharonlynn
vsharonlynn marked this pull request as ready for review June 29, 2026 17:47
@vsharonlynn
vsharonlynn requested review from a team as code owners June 29, 2026 17:47

@coryan coryan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is too large for a single PR, please split.

@vsharonlynn

vsharonlynn commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

This is too large for a single PR, please split.

Sorry about this. I have chained PRs, this has changes from #5956. Because my branches are in my fork, I can't diff this branch from the #5956 branch in a PR into this repository.

One way I found on how to view only the changes for this PR is to select the commits that don't belong to the previous PR:

image Happy to split it up if this still looks too large.

Another way is for us to wait until the previous PR is merged, then I'll rebase this before you take a look.

Please let me know if there is a more efficient way to do this...

Thank you.

@coryan

coryan commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Another way is for us to wait until the previous PR is merged, then I'll rebase this before you take a look.

Yes, that works for me.

Please let me know if there is a more efficient way to do this...

Support for stacked PRs (allegedly in the works at GitHub) may help, but I do not think that is available to us yet.

Normally we keep stacked PRs as draft. They are useful to give reviewers a sense of the overall change, but too large to review. Reviewing after a rebase is far more practical.

@vsharonlynn
vsharonlynn force-pushed the appendable_upload_4 branch from 5e066c1 to 22519c7 Compare July 20, 2026 15:41
@vsharonlynn
vsharonlynn marked this pull request as draft July 20, 2026 17:05
@vsharonlynn
vsharonlynn force-pushed the appendable_upload_4 branch from 22519c7 to 7419b0b Compare July 21, 2026 05:31
@vsharonlynn
vsharonlynn force-pushed the appendable_upload_4 branch from 7419b0b to 325dfe0 Compare July 21, 2026 07:39
@vsharonlynn vsharonlynn changed the title feat(storage): implement API, request builders, integration tests feat(storage): update request models for appendable upload Jul 21, 2026
@vsharonlynn
vsharonlynn marked this pull request as ready for review July 21, 2026 08:02
@vsharonlynn

Copy link
Copy Markdown
Contributor Author

This large PR has been split into 4 PRs:

Thank you.

@vsharonlynn
vsharonlynn merged commit bed8323 into googleapis:main Jul 21, 2026
41 checks passed
@vsharonlynn
vsharonlynn deleted the appendable_upload_4 branch July 21, 2026 15:47
@vsharonlynn vsharonlynn linked an issue Jul 22, 2026 that may be closed by this pull request
vsharonlynn added a commit that referenced this pull request Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: storage Issues related to the Cloud Storage API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement appendable upload

3 participants