aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2023-12-06 11:43:54 +0000
committerTaras Madan <tarasmadan@google.com>2023-12-06 12:03:27 +0000
commit890ff564fc337dbad895b2cb9ca21f81c5febfa3 (patch)
treef8da32141fee0c968938f30c09d033dd3bd90a0a
parent3353f6dd2d685a9b699f7f951014e82f5c6810d8 (diff)
mod: do: bump cloud.google.com/go/storage from 1.34.1 to 1.35.1
Bumps [cloud.google.com/go/storage](https://github.com/googleapis/google-cloud-go) from 1.34.1 to 1.35.1. - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/spanner/v1.34.1...storage/v1.35.1) --- updated-dependencies: - dependency-name: cloud.google.com/go/storage dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
-rw-r--r--go.mod2
-rw-r--r--go.sum4
-rw-r--r--vendor/cloud.google.com/go/storage/CHANGES.md14
-rw-r--r--vendor/cloud.google.com/go/storage/grpc_client.go217
-rw-r--r--vendor/cloud.google.com/go/storage/internal/apiv2/auxiliary.go210
-rw-r--r--vendor/cloud.google.com/go/storage/internal/apiv2/doc.go29
-rw-r--r--vendor/cloud.google.com/go/storage/internal/apiv2/storage_client.go188
-rw-r--r--vendor/cloud.google.com/go/storage/internal/version.go2
-rw-r--r--vendor/modules.txt2
9 files changed, 387 insertions, 281 deletions
diff --git a/go.mod b/go.mod
index a2126c871..8e4bd4e0a 100644
--- a/go.mod
+++ b/go.mod
@@ -7,7 +7,7 @@ require (
cloud.google.com/go/profiler v0.4.0
cloud.google.com/go/pubsub v1.33.0
cloud.google.com/go/secretmanager v1.11.4
- cloud.google.com/go/storage v1.34.1
+ cloud.google.com/go/storage v1.35.1
github.com/dvyukov/go-fuzz v0.0.0-20220726122315-1d375ef9f9f6
github.com/golangci/golangci-lint v1.55.2
github.com/google/go-cmp v0.6.0
diff --git a/go.sum b/go.sum
index be480e01c..e1ec58157 100644
--- a/go.sum
+++ b/go.sum
@@ -59,8 +59,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
-cloud.google.com/go/storage v1.34.1 h1:H2Af2dU5J0PF7A5B+ECFIce+RqxVnrVilO+cu0TS3MI=
-cloud.google.com/go/storage v1.34.1/go.mod h1:VN1ElqqvR9adg1k9xlkUJ55cMOP1/QjnNNuT5xQL6dY=
+cloud.google.com/go/storage v1.35.1 h1:B59ahL//eDfx2IIKFBeT5Atm9wnNmj3+8xG/W4WB//w=
+cloud.google.com/go/storage v1.35.1/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
github.com/4meepo/tagalign v1.3.3 h1:ZsOxcwGD/jP4U/aw7qeWu58i7dwYemfy5Y+IF1ACoNw=
diff --git a/vendor/cloud.google.com/go/storage/CHANGES.md b/vendor/cloud.google.com/go/storage/CHANGES.md
index f1d51afb7..30ee040f7 100644
--- a/vendor/cloud.google.com/go/storage/CHANGES.md
+++ b/vendor/cloud.google.com/go/storage/CHANGES.md
@@ -1,6 +1,20 @@
# Changes
+## [1.35.1](https://github.com/googleapis/google-cloud-go/compare/storage/v1.35.0...storage/v1.35.1) (2023-11-09)
+
+
+### Bug Fixes
+
+* **storage:** Rename aux.go to auxiliary.go fixing windows build ([ba23673](https://github.com/googleapis/google-cloud-go/commit/ba23673da7707c31292e4aa29d65b7ac1446d4a6))
+
+## [1.35.0](https://github.com/googleapis/google-cloud-go/compare/storage/v1.34.1...storage/v1.35.0) (2023-11-09)
+
+
+### Features
+
+* **storage:** Change gRPC writes to use bi-directional streams ([#8930](https://github.com/googleapis/google-cloud-go/issues/8930)) ([3e23a36](https://github.com/googleapis/google-cloud-go/commit/3e23a364b1a20c4fda7aef257e4136586ec769a4))
+
## [1.34.1](https://github.com/googleapis/google-cloud-go/compare/storage/v1.34.0...storage/v1.34.1) (2023-11-01)
diff --git a/vendor/cloud.google.com/go/storage/grpc_client.go b/vendor/cloud.google.com/go/storage/grpc_client.go
index 3a5cd4088..99dfba467 100644
--- a/vendor/cloud.google.com/go/storage/grpc_client.go
+++ b/vendor/cloud.google.com/go/storage/grpc_client.go
@@ -1066,7 +1066,7 @@ func (c *grpcStorageClient) OpenWriter(params *openWriterParams, opts ...storage
}
}
- o, off, finalized, err := gw.uploadBuffer(recvd, offset, doneReading)
+ o, off, err := gw.uploadBuffer(recvd, offset, doneReading)
if err != nil {
err = checkCanceled(err)
errorf(err)
@@ -1085,9 +1085,9 @@ func (c *grpcStorageClient) OpenWriter(params *openWriterParams, opts ...storage
progress(offset)
}
- // When we are done reading data and the chunk has been finalized,
- // we are done.
- if doneReading && finalized {
+ // When we are done reading data without errors, set the object and
+ // finish.
+ if doneReading {
// Build Object from server's response.
setObj(newObjectFromProto(o))
return
@@ -1537,7 +1537,7 @@ type gRPCWriter struct {
chunkSize int
// The gRPC client-stream used for sending buffers.
- stream storagepb.Storage_WriteObjectClient
+ stream storagepb.Storage_BidiWriteObjectClient
// The Resumable Upload ID started by a gRPC-based Writer.
upid string
@@ -1581,45 +1581,56 @@ func (w *gRPCWriter) queryProgress() (int64, error) {
return persistedSize, err
}
-// uploadBuffer opens a Write stream and uploads the buffer at the given offset (if
-// uploading a chunk for a resumable uploadBuffer), and will mark the write as
-// finished if we are done receiving data from the user. The resulting write
-// offset after uploading the buffer is returned, as well as a boolean
-// indicating if the Object has been finalized. If it has been finalized, the
-// final Object will be returned as well. Finalizing the upload is primarily
-// important for Resumable Uploads. A simple or multi-part upload will always
-// be finalized once the entire buffer has been written.
-func (w *gRPCWriter) uploadBuffer(recvd int, start int64, doneReading bool) (*storagepb.Object, int64, bool, error) {
- var err error
- var finishWrite bool
- var sent, limit int = 0, maxPerMessageWriteSize
+// uploadBuffer uploads the buffer at the given offset using a bi-directional
+// Write stream. It will open a new stream if necessary (on the first call or
+// after resuming from failure). The resulting write offset after uploading the
+// buffer is returned, as well as well as the final Object if the upload is
+// completed.
+//
+// Returns object, persisted size, and any error that is not retriable.
+func (w *gRPCWriter) uploadBuffer(recvd int, start int64, doneReading bool) (*storagepb.Object, int64, error) {
var shouldRetry = ShouldRetry
if w.settings.retry != nil && w.settings.retry.shouldRetry != nil {
shouldRetry = w.settings.retry.shouldRetry
}
- offset := start
+
+ var err error
+ var lastWriteOfEntireObject bool
+
+ sent := 0
+ writeOffset := start
+
toWrite := w.buf[:recvd]
+
+ // Send a request with as many bytes as possible.
+ // Loop until all bytes are sent.
for {
- // This indicates that this is the last message and the remaining
- // data fits in one message.
- belowLimit := recvd-sent <= limit
- if belowLimit {
- limit = recvd - sent
+ bytesNotYetSent := recvd - sent
+ remainingDataFitsInSingleReq := bytesNotYetSent <= maxPerMessageWriteSize
+
+ if remainingDataFitsInSingleReq && doneReading {
+ lastWriteOfEntireObject = true
}
- if belowLimit && doneReading {
- finishWrite = true
+
+ // Send the maximum amount of bytes we can, unless we don't have that many.
+ bytesToSendInCurrReq := maxPerMessageWriteSize
+ if remainingDataFitsInSingleReq {
+ bytesToSendInCurrReq = bytesNotYetSent
}
// Prepare chunk section for upload.
- data := toWrite[sent : sent+limit]
- req := &storagepb.WriteObjectRequest{
- Data: &storagepb.WriteObjectRequest_ChecksummedData{
+ data := toWrite[sent : sent+bytesToSendInCurrReq]
+
+ req := &storagepb.BidiWriteObjectRequest{
+ Data: &storagepb.BidiWriteObjectRequest_ChecksummedData{
ChecksummedData: &storagepb.ChecksummedData{
Content: data,
},
},
- WriteOffset: offset,
- FinishWrite: finishWrite,
+ WriteOffset: writeOffset,
+ FinishWrite: lastWriteOfEntireObject,
+ Flush: remainingDataFitsInSingleReq,
+ StateLookup: remainingDataFitsInSingleReq,
}
// Open a new stream if necessary and set the first_message field on
@@ -1628,19 +1639,20 @@ func (w *gRPCWriter) uploadBuffer(recvd int, start int64, doneReading bool) (*st
if w.stream == nil {
hds := []string{"x-goog-request-params", fmt.Sprintf("bucket=projects/_/buckets/%s", url.QueryEscape(w.bucket))}
ctx := gax.InsertMetadataIntoOutgoingContext(w.ctx, hds...)
- w.stream, err = w.c.raw.WriteObject(ctx)
+
+ w.stream, err = w.c.raw.BidiWriteObject(ctx)
if err != nil {
- return nil, 0, false, err
+ return nil, 0, err
}
- if w.upid != "" {
- req.FirstMessage = &storagepb.WriteObjectRequest_UploadId{UploadId: w.upid}
- } else {
+ if w.upid != "" { // resumable upload
+ req.FirstMessage = &storagepb.BidiWriteObjectRequest_UploadId{UploadId: w.upid}
+ } else { // non-resumable
spec, err := w.writeObjectSpec()
if err != nil {
- return nil, 0, false, err
+ return nil, 0, err
}
- req.FirstMessage = &storagepb.WriteObjectRequest_WriteObjectSpec{
+ req.FirstMessage = &storagepb.BidiWriteObjectRequest_WriteObjectSpec{
WriteObjectSpec: spec,
}
req.CommonObjectRequestParams = toProtoCommonObjectRequestParams(w.encryptionKey)
@@ -1650,15 +1662,24 @@ func (w *gRPCWriter) uploadBuffer(recvd int, start int64, doneReading bool) (*st
// on the *last* message of the stream (instead of the first).
req.ObjectChecksums = toProtoChecksums(w.sendCRC32C, w.attrs)
}
-
}
err = w.stream.Send(req)
if err == io.EOF {
// err was io.EOF. The client-side of a stream only gets an EOF on Send
// when the backend closes the stream and wants to return an error
- // status. Closing the stream receives the status as an error.
- _, err = w.stream.CloseAndRecv()
+ // status.
+
+ // Receive from the stream Recv() until it returns a non-nil error
+ // to receive the server's status as an error. We may get multiple
+ // messages before the error due to buffering.
+ err = nil
+ for err == nil {
+ _, err = w.stream.Recv()
+ }
+ // Drop the stream reference as a new one will need to be created if
+ // we retry.
+ w.stream = nil
// Drop the stream reference as a new one will need to be created if
// we can retry the upload
@@ -1666,26 +1687,28 @@ func (w *gRPCWriter) uploadBuffer(recvd int, start int64, doneReading bool) (*st
// Retriable errors mean we should start over and attempt to
// resend the entire buffer via a new stream.
- // If not retriable, falling through will return the error received
- // from closing the stream.
+ // If not retriable, falling through will return the error received.
if shouldRetry(err) {
- sent = 0
- finishWrite = false
// TODO: Add test case for failure modes of querying progress.
- offset, err = w.determineOffset(start)
- if err == nil {
- continue
+ writeOffset, err = w.determineOffset(start)
+ if err != nil {
+ return nil, 0, err
}
+ sent = int(writeOffset) - int(start)
+
+ // Continue sending requests, opening a new stream and resending
+ // any bytes not yet persisted as per QueryWriteStatus
+ continue
}
}
if err != nil {
- return nil, 0, false, err
+ return nil, 0, err
}
// Update the immediate stream's sent total and the upload offset with
// the data sent.
sent += len(data)
- offset += int64(len(data))
+ writeOffset += int64(len(data))
// Not done sending data, do not attempt to commit it yet, loop around
// and send more data.
@@ -1694,31 +1717,81 @@ func (w *gRPCWriter) uploadBuffer(recvd int, start int64, doneReading bool) (*st
}
// The buffer has been uploaded and there is still more data to be
- // uploaded, but this is not a resumable upload session. Therefore
- // keep the stream open and don't commit yet.
- if !finishWrite && w.chunkSize == 0 {
- return nil, offset, false, nil
+ // uploaded, but this is not a resumable upload session. Therefore,
+ // don't check persisted data.
+ if !lastWriteOfEntireObject && w.chunkSize == 0 {
+ return nil, writeOffset, nil
}
- // Done sending data. Close the stream to "commit" the data sent.
- resp, finalized, err := w.commit()
+ // Done sending data (remainingDataFitsInSingleReq should == true if we
+ // reach this code). Receive from the stream to confirm the persisted data.
+ resp, err := w.stream.Recv()
+
// Retriable errors mean we should start over and attempt to
// resend the entire buffer via a new stream.
// If not retriable, falling through will return the error received
// from closing the stream.
if shouldRetry(err) {
- sent = 0
- finishWrite = false
- offset, err = w.determineOffset(start)
- if err == nil {
- continue
+ writeOffset, err = w.determineOffset(start)
+ if err != nil {
+ return nil, 0, err
}
+ sent = int(writeOffset) - int(start)
+
+ // Drop the stream reference as a new one will need to be created.
+ w.stream = nil
+
+ continue
}
if err != nil {
- return nil, 0, false, err
+ return nil, 0, err
}
- return resp.GetResource(), offset, finalized, nil
+ // Confirm the persisted data if we have not finished uploading the object.
+ if !lastWriteOfEntireObject {
+ if resp.GetPersistedSize() != writeOffset {
+ // Retry if not all bytes were persisted.
+ writeOffset = resp.GetPersistedSize()
+ sent = int(writeOffset) - int(start)
+ continue
+ }
+ } else {
+ // If the object is done uploading, close the send stream to signal
+ // to the server that we are done sending so that we can receive
+ // from the stream without blocking.
+ err = w.stream.CloseSend()
+ if err != nil {
+ // CloseSend() retries the send internally. It never returns an
+ // error in the current implementation, but we check it anyway in
+ // case that it does in the future.
+ return nil, 0, err
+ }
+
+ // Stream receives do not block once send is closed, but we may not
+ // receive the response with the object right away; loop until we
+ // receive the object or error out.
+ var obj *storagepb.Object
+ for obj == nil {
+ resp, err := w.stream.Recv()
+ if err != nil {
+ return nil, 0, err
+ }
+
+ obj = resp.GetResource()
+ }
+
+ // Even though we received the object response, continue reading
+ // until we receive a non-nil error, to ensure the stream does not
+ // leak even if the context isn't cancelled. See:
+ // https://pkg.go.dev/google.golang.org/grpc#ClientConn.NewStream
+ for err == nil {
+ _, err = w.stream.Recv()
+ }
+
+ return obj, writeOffset, nil
+ }
+
+ return nil, writeOffset, nil
}
}
@@ -1738,26 +1811,6 @@ func (w *gRPCWriter) determineOffset(offset int64) (int64, error) {
return offset, nil
}
-// commit closes the stream to commit the data sent and potentially receive
-// the finalized object if finished uploading. If the last request sent
-// indicated that writing was finished, the Object will be finalized and
-// returned. If not, then the Object will be nil, and the boolean returned will
-// be false.
-func (w *gRPCWriter) commit() (*storagepb.WriteObjectResponse, bool, error) {
- finalized := true
- resp, err := w.stream.CloseAndRecv()
- if err == io.EOF {
- // Closing a stream for a resumable upload finish_write = false results
- // in an EOF which can be ignored, as we aren't done uploading yet.
- finalized = false
- err = nil
- }
- // Drop the stream reference as it has been closed.
- w.stream = nil
-
- return resp, finalized, err
-}
-
// writeObjectSpec constructs a WriteObjectSpec proto using the Writer's
// ObjectAttrs and applies its Conditions. This is only used for gRPC.
func (w *gRPCWriter) writeObjectSpec() (*storagepb.WriteObjectSpec, error) {
diff --git a/vendor/cloud.google.com/go/storage/internal/apiv2/auxiliary.go b/vendor/cloud.google.com/go/storage/internal/apiv2/auxiliary.go
new file mode 100644
index 000000000..c6fd4b341
--- /dev/null
+++ b/vendor/cloud.google.com/go/storage/internal/apiv2/auxiliary.go
@@ -0,0 +1,210 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
+
+package storage
+
+import (
+ storagepb "cloud.google.com/go/storage/internal/apiv2/storagepb"
+ "google.golang.org/api/iterator"
+)
+
+// BucketIterator manages a stream of *storagepb.Bucket.
+type BucketIterator struct {
+ items []*storagepb.Bucket
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // Response is the raw response for the current page.
+ // It must be cast to the RPC response type.
+ // Calling Next() or InternalFetch() updates this value.
+ Response interface{}
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*storagepb.Bucket, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *BucketIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *BucketIterator) Next() (*storagepb.Bucket, error) {
+ var item *storagepb.Bucket
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *BucketIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *BucketIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// HmacKeyMetadataIterator manages a stream of *storagepb.HmacKeyMetadata.
+type HmacKeyMetadataIterator struct {
+ items []*storagepb.HmacKeyMetadata
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // Response is the raw response for the current page.
+ // It must be cast to the RPC response type.
+ // Calling Next() or InternalFetch() updates this value.
+ Response interface{}
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*storagepb.HmacKeyMetadata, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *HmacKeyMetadataIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *HmacKeyMetadataIterator) Next() (*storagepb.HmacKeyMetadata, error) {
+ var item *storagepb.HmacKeyMetadata
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *HmacKeyMetadataIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *HmacKeyMetadataIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// NotificationConfigIterator manages a stream of *storagepb.NotificationConfig.
+type NotificationConfigIterator struct {
+ items []*storagepb.NotificationConfig
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // Response is the raw response for the current page.
+ // It must be cast to the RPC response type.
+ // Calling Next() or InternalFetch() updates this value.
+ Response interface{}
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*storagepb.NotificationConfig, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *NotificationConfigIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *NotificationConfigIterator) Next() (*storagepb.NotificationConfig, error) {
+ var item *storagepb.NotificationConfig
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *NotificationConfigIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *NotificationConfigIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// ObjectIterator manages a stream of *storagepb.Object.
+type ObjectIterator struct {
+ items []*storagepb.Object
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // Response is the raw response for the current page.
+ // It must be cast to the RPC response type.
+ // Calling Next() or InternalFetch() updates this value.
+ Response interface{}
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*storagepb.Object, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *ObjectIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *ObjectIterator) Next() (*storagepb.Object, error) {
+ var item *storagepb.Object
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *ObjectIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *ObjectIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
diff --git a/vendor/cloud.google.com/go/storage/internal/apiv2/doc.go b/vendor/cloud.google.com/go/storage/internal/apiv2/doc.go
index c50b0fb0e..8159589ea 100644
--- a/vendor/cloud.google.com/go/storage/internal/apiv2/doc.go
+++ b/vendor/cloud.google.com/go/storage/internal/apiv2/doc.go
@@ -76,15 +76,32 @@
// // TODO: Handle error.
// }
// defer c.Close()
-//
-// req := &storagepb.DeleteBucketRequest{
-// // TODO: Fill request struct fields.
-// // See https://pkg.go.dev/cloud.google.com/go/storage/internal/apiv2/storagepb#DeleteBucketRequest.
-// }
-// err = c.DeleteBucket(ctx, req)
+// stream, err := c.BidiWriteObject(ctx)
// if err != nil {
// // TODO: Handle error.
// }
+// go func() {
+// reqs := []*storagepb.BidiWriteObjectRequest{
+// // TODO: Create requests.
+// }
+// for _, req := range reqs {
+// if err := stream.Send(req); err != nil {
+// // TODO: Handle error.
+// }
+// }
+// stream.CloseSend()
+// }()
+// for {
+// resp, err := stream.Recv()
+// if err == io.EOF {
+// break
+// }
+// if err != nil {
+// // TODO: handle error.
+// }
+// // TODO: Use resp.
+// _ = resp
+// }
//
// # Use of Context
//
diff --git a/vendor/cloud.google.com/go/storage/internal/apiv2/storage_client.go b/vendor/cloud.google.com/go/storage/internal/apiv2/storage_client.go
index 0de7e3fb4..648199506 100644
--- a/vendor/cloud.google.com/go/storage/internal/apiv2/storage_client.go
+++ b/vendor/cloud.google.com/go/storage/internal/apiv2/storage_client.go
@@ -1921,191 +1921,3 @@ func (c *gRPCClient) UpdateHmacKey(ctx context.Context, req *storagepb.UpdateHma
}
return resp, nil
}
-
-// BucketIterator manages a stream of *storagepb.Bucket.
-type BucketIterator struct {
- items []*storagepb.Bucket
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // InternalFetch is for use by the Google Cloud Libraries only.
- // It is not part of the stable interface of this package.
- //
- // InternalFetch returns results from a single call to the underlying RPC.
- // The number of results is no greater than pageSize.
- // If there are no more results, nextPageToken is empty and err is nil.
- InternalFetch func(pageSize int, pageToken string) (results []*storagepb.Bucket, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *BucketIterator) PageInfo() *iterator.PageInfo {
- return it.pageInfo
-}
-
-// Next returns the next result. Its second return value is iterator.Done if there are no more
-// results. Once Next returns Done, all subsequent calls will return Done.
-func (it *BucketIterator) Next() (*storagepb.Bucket, error) {
- var item *storagepb.Bucket
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *BucketIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *BucketIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
-
-// HmacKeyMetadataIterator manages a stream of *storagepb.HmacKeyMetadata.
-type HmacKeyMetadataIterator struct {
- items []*storagepb.HmacKeyMetadata
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // InternalFetch is for use by the Google Cloud Libraries only.
- // It is not part of the stable interface of this package.
- //
- // InternalFetch returns results from a single call to the underlying RPC.
- // The number of results is no greater than pageSize.
- // If there are no more results, nextPageToken is empty and err is nil.
- InternalFetch func(pageSize int, pageToken string) (results []*storagepb.HmacKeyMetadata, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *HmacKeyMetadataIterator) PageInfo() *iterator.PageInfo {
- return it.pageInfo
-}
-
-// Next returns the next result. Its second return value is iterator.Done if there are no more
-// results. Once Next returns Done, all subsequent calls will return Done.
-func (it *HmacKeyMetadataIterator) Next() (*storagepb.HmacKeyMetadata, error) {
- var item *storagepb.HmacKeyMetadata
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *HmacKeyMetadataIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *HmacKeyMetadataIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
-
-// NotificationConfigIterator manages a stream of *storagepb.NotificationConfig.
-type NotificationConfigIterator struct {
- items []*storagepb.NotificationConfig
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // InternalFetch is for use by the Google Cloud Libraries only.
- // It is not part of the stable interface of this package.
- //
- // InternalFetch returns results from a single call to the underlying RPC.
- // The number of results is no greater than pageSize.
- // If there are no more results, nextPageToken is empty and err is nil.
- InternalFetch func(pageSize int, pageToken string) (results []*storagepb.NotificationConfig, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *NotificationConfigIterator) PageInfo() *iterator.PageInfo {
- return it.pageInfo
-}
-
-// Next returns the next result. Its second return value is iterator.Done if there are no more
-// results. Once Next returns Done, all subsequent calls will return Done.
-func (it *NotificationConfigIterator) Next() (*storagepb.NotificationConfig, error) {
- var item *storagepb.NotificationConfig
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *NotificationConfigIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *NotificationConfigIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
-
-// ObjectIterator manages a stream of *storagepb.Object.
-type ObjectIterator struct {
- items []*storagepb.Object
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // InternalFetch is for use by the Google Cloud Libraries only.
- // It is not part of the stable interface of this package.
- //
- // InternalFetch returns results from a single call to the underlying RPC.
- // The number of results is no greater than pageSize.
- // If there are no more results, nextPageToken is empty and err is nil.
- InternalFetch func(pageSize int, pageToken string) (results []*storagepb.Object, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *ObjectIterator) PageInfo() *iterator.PageInfo {
- return it.pageInfo
-}
-
-// Next returns the next result. Its second return value is iterator.Done if there are no more
-// results. Once Next returns Done, all subsequent calls will return Done.
-func (it *ObjectIterator) Next() (*storagepb.Object, error) {
- var item *storagepb.Object
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *ObjectIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *ObjectIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
diff --git a/vendor/cloud.google.com/go/storage/internal/version.go b/vendor/cloud.google.com/go/storage/internal/version.go
index 4a81ada09..eca9b294a 100644
--- a/vendor/cloud.google.com/go/storage/internal/version.go
+++ b/vendor/cloud.google.com/go/storage/internal/version.go
@@ -15,4 +15,4 @@
package internal
// Version is the current tagged release of the library.
-const Version = "1.34.1"
+const Version = "1.35.1"
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 78184601d..11af7396b 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -52,7 +52,7 @@ cloud.google.com/go/pubsub/internal/scheduler
cloud.google.com/go/secretmanager/apiv1
cloud.google.com/go/secretmanager/apiv1/secretmanagerpb
cloud.google.com/go/secretmanager/internal
-# cloud.google.com/go/storage v1.34.1
+# cloud.google.com/go/storage v1.35.1
## explicit; go 1.19
cloud.google.com/go/storage
cloud.google.com/go/storage/internal