Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions object_store/src/gcp/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,7 @@ impl GoogleCloudStorageClient {
// GCS doesn't allow empty multipart uploads
Copy link
Contributor

Choose a reason for hiding this comment

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

I wonder if we could perhaps make this more clear by simply calling self.put directly

Copy link
Author

Choose a reason for hiding this comment

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

It's a good idea, but self.put also doesn't set Content-length so we'd have the same issue. I could update self.put to always set the Content-Length if the payload is empty. That would have a larger blast radius though. Thoughts?

let result = self
.request(Method::PUT, path)
.header(&CONTENT_LENGTH, "0")
.idempotent(true)
.do_put()
.await?;
Expand All @@ -540,6 +541,7 @@ impl GoogleCloudStorageClient {
let response = self
.client
.request(Method::POST, &url)
.header(&CONTENT_LENGTH, data.len())
Copy link
Contributor

@tustvold tustvold Mar 20, 2025

Choose a reason for hiding this comment

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

I think this should be unnecessary, and I believe is potentially incorrect if the client decides to use a some sort of transport encoding

Copy link
Author

Choose a reason for hiding this comment

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

Removed.

.bearer_auth(&credential.bearer)
.query(&[("uploadId", upload_id)])
.body(data)
Expand Down
Loading