Skip to content

feat(storage): expose send_and_append on OpenAppendableObject - #6490

Open
vsharonlynn wants to merge 1 commit into
googleapis:mainfrom
vsharonlynn:bidi-open-and-append-api
Open

feat(storage): expose send_and_append on OpenAppendableObject#6490
vsharonlynn wants to merge 1 commit into
googleapis:mainfrom
vsharonlynn:bidi-open-and-append-api

Conversation

@vsharonlynn

@vsharonlynn vsharonlynn commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Issue #5716 .

This PR follows PR #6489 .

@vsharonlynn vsharonlynn changed the title Bidi open and append api feat(storage): expose send_and_append on OpenAppendableObject Aug 21, 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 introduces the ability to send an initial chunk of data when opening a bidirectional write stream for appendable objects. It adds a new send_and_append method to the OpenAppendableObject builder, updates the internal state machine (AppendObjectSpecState) and connector to handle and preserve the initial chunk (including CRC32C checksum calculation), and updates the transport layer to correctly initialize the write offset and running checksum. There are no review comments, and the implementation looks solid and well-tested.

@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.50327% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 96.41%. Comparing base (30c6e15) to head (3ac8ae4).

Files with missing lines Patch % Lines
src/storage/src/storage/stub.rs 0.00% 10 Missing ⚠️
src/storage/src/storage/transport.rs 97.56% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6490      +/-   ##
==========================================
- Coverage   96.41%   96.41%   -0.01%     
==========================================
  Files         303      303              
  Lines       85422    85568     +146     
==========================================
+ Hits        82362    82498     +136     
- Misses       3060     3070      +10     

☔ 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.

@product-auto-label product-auto-label Bot added the api: storage Issues related to the Cloud Storage API. label Aug 21, 2026
@vsharonlynn
vsharonlynn force-pushed the bidi-open-and-append-api branch 2 times, most recently from f2a14a0 to 352e2ca Compare August 26, 2026 06:11
@vsharonlynn
vsharonlynn force-pushed the bidi-open-and-append-api branch from 352e2ca to 3ac8ae4 Compare August 26, 2026 06:19
@vsharonlynn
vsharonlynn marked this pull request as ready for review August 26, 2026 07:07
@vsharonlynn
vsharonlynn requested review from a team as code owners August 26, 2026 07:07
}

#[cfg(google_cloud_unstable_storage_bidi)]
/// Implements [crate::client::Storage::open_appendable_object] with an initial chunk.

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.

Nit: maybe something like "Implements XYZ. Also sends an appendable chunk with the initial request".

Right now it reads funny.


#[cfg(google_cloud_unstable_storage_bidi)]
#[tokio::test]
async fn open_appendable_object_and_append_not_found() -> anyhow::Result<()> {

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.

what is the thing that is "not_found"? can the test name include that so that it's clearer?

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.

2 participants