@@ -1725,12 +1725,12 @@ func (c *grpcStorageClient) OpenWriter(params *openWriterParams, opts ...storage
1725
1725
1726
1726
var o * storagepb.Object
1727
1727
uploadBuff := func (ctx context.Context ) error {
1728
- obj , err := gw .uploadBuffer (recvd , offset , doneReading )
1728
+ obj , err := gw .uploadBuffer (ctx , recvd , offset , doneReading )
1729
1729
o = obj
1730
1730
return err
1731
1731
}
1732
1732
1733
- err = run (gw .ctx , uploadBuff , gw .settings .retry , s .idempotent )
1733
+ err = run (bucketContext ( gw .ctx , gw . bucket ) , uploadBuff , gw .settings .retry , s .idempotent )
1734
1734
if err != nil {
1735
1735
return err
1736
1736
}
@@ -2666,11 +2666,10 @@ type gRPCBidiWriteBufferSender interface {
2666
2666
// If flush is true, implementations must not return until the data in buf is
2667
2667
// stable. If finishWrite is true, implementations must return the object on
2668
2668
// success.
2669
- sendBuffer (buf []byte , offset int64 , flush , finishWrite bool ) (* storagepb.Object , error )
2669
+ sendBuffer (ctx context. Context , buf []byte , offset int64 , flush , finishWrite bool ) (* storagepb.Object , error )
2670
2670
}
2671
2671
2672
2672
type gRPCOneshotBidiWriteBufferSender struct {
2673
- ctx context.Context
2674
2673
firstMessage * storagepb.BidiWriteObjectRequest
2675
2674
raw * gapic.Client
2676
2675
stream storagepb.Storage_BidiWriteObjectClient
@@ -2691,17 +2690,16 @@ func (w *gRPCWriter) newGRPCOneshotBidiWriteBufferSender() (*gRPCOneshotBidiWrit
2691
2690
}
2692
2691
2693
2692
return & gRPCOneshotBidiWriteBufferSender {
2694
- ctx : bucketContext (w .ctx , w .bucket ),
2695
2693
firstMessage : firstMessage ,
2696
2694
raw : w .c .raw ,
2697
2695
settings : w .settings ,
2698
2696
}, nil
2699
2697
}
2700
2698
2701
- func (s * gRPCOneshotBidiWriteBufferSender ) sendBuffer (buf []byte , offset int64 , flush , finishWrite bool ) (obj * storagepb.Object , err error ) {
2699
+ func (s * gRPCOneshotBidiWriteBufferSender ) sendBuffer (ctx context. Context , buf []byte , offset int64 , flush , finishWrite bool ) (obj * storagepb.Object , err error ) {
2702
2700
var firstMessage * storagepb.BidiWriteObjectRequest
2703
2701
if s .stream == nil {
2704
- s .stream , err = s .raw .BidiWriteObject (s . ctx , s .settings .gax ... )
2702
+ s .stream , err = s .raw .BidiWriteObject (ctx , s .settings .gax ... )
2705
2703
if err != nil {
2706
2704
return
2707
2705
}
@@ -2737,7 +2735,6 @@ func (s *gRPCOneshotBidiWriteBufferSender) sendBuffer(buf []byte, offset int64,
2737
2735
}
2738
2736
2739
2737
type gRPCResumableBidiWriteBufferSender struct {
2740
- ctx context.Context
2741
2738
queryRetry * retryConfig
2742
2739
upid string
2743
2740
progress func (int64 )
@@ -2748,7 +2745,7 @@ type gRPCResumableBidiWriteBufferSender struct {
2748
2745
settings * settings
2749
2746
}
2750
2747
2751
- func (w * gRPCWriter ) newGRPCResumableBidiWriteBufferSender () (* gRPCResumableBidiWriteBufferSender , error ) {
2748
+ func (w * gRPCWriter ) newGRPCResumableBidiWriteBufferSender (ctx context. Context ) (* gRPCResumableBidiWriteBufferSender , error ) {
2752
2749
req := & storagepb.StartResumableWriteRequest {
2753
2750
WriteObjectSpec : w .spec ,
2754
2751
CommonObjectRequestParams : toProtoCommonObjectRequestParams (w .encryptionKey ),
@@ -2758,7 +2755,6 @@ func (w *gRPCWriter) newGRPCResumableBidiWriteBufferSender() (*gRPCResumableBidi
2758
2755
ObjectChecksums : toProtoChecksums (w .sendCRC32C , w .attrs ),
2759
2756
}
2760
2757
2761
- ctx := bucketContext (w .ctx , w .bucket )
2762
2758
var upid string
2763
2759
err := run (ctx , func (ctx context.Context ) error {
2764
2760
upres , err := w .c .raw .StartResumableWrite (ctx , req , w .settings .gax ... )
@@ -2778,7 +2774,6 @@ func (w *gRPCWriter) newGRPCResumableBidiWriteBufferSender() (*gRPCResumableBidi
2778
2774
}
2779
2775
2780
2776
return & gRPCResumableBidiWriteBufferSender {
2781
- ctx : ctx ,
2782
2777
queryRetry : w .settings .retry ,
2783
2778
upid : upid ,
2784
2779
progress : w .progress ,
@@ -2791,9 +2786,9 @@ func (w *gRPCWriter) newGRPCResumableBidiWriteBufferSender() (*gRPCResumableBidi
2791
2786
2792
2787
// queryProgress is a helper that queries the status of the resumable upload
2793
2788
// associated with the given upload ID.
2794
- func (s * gRPCResumableBidiWriteBufferSender ) queryProgress () (int64 , error ) {
2789
+ func (s * gRPCResumableBidiWriteBufferSender ) queryProgress (ctx context. Context ) (int64 , error ) {
2795
2790
var persistedSize int64
2796
- err := run (s . ctx , func (ctx context.Context ) error {
2791
+ err := run (ctx , func (ctx context.Context ) error {
2797
2792
q , err := s .raw .QueryWriteStatus (ctx , & storagepb.QueryWriteStatusRequest {
2798
2793
UploadId : s .upid ,
2799
2794
}, s .settings .gax ... )
@@ -2805,15 +2800,15 @@ func (s *gRPCResumableBidiWriteBufferSender) queryProgress() (int64, error) {
2805
2800
return persistedSize , err
2806
2801
}
2807
2802
2808
- func (s * gRPCResumableBidiWriteBufferSender ) sendBuffer (buf []byte , offset int64 , flush , finishWrite bool ) (obj * storagepb.Object , err error ) {
2803
+ func (s * gRPCResumableBidiWriteBufferSender ) sendBuffer (ctx context. Context , buf []byte , offset int64 , flush , finishWrite bool ) (obj * storagepb.Object , err error ) {
2809
2804
reconnected := false
2810
2805
if s .stream == nil {
2811
2806
// Determine offset and reconnect
2812
- s .flushOffset , err = s .queryProgress ()
2807
+ s .flushOffset , err = s .queryProgress (ctx )
2813
2808
if err != nil {
2814
2809
return
2815
2810
}
2816
- s .stream , err = s .raw .BidiWriteObject (s . ctx , s .settings .gax ... )
2811
+ s .stream , err = s .raw .BidiWriteObject (ctx , s .settings .gax ... )
2817
2812
if err != nil {
2818
2813
return
2819
2814
}
@@ -2885,7 +2880,7 @@ func (s *gRPCResumableBidiWriteBufferSender) sendBuffer(buf []byte, offset int64
2885
2880
// The final Object is returned on success if doneReading is true.
2886
2881
//
2887
2882
// Returns object and any error that is not retriable.
2888
- func (w * gRPCWriter ) uploadBuffer (recvd int , start int64 , doneReading bool ) (obj * storagepb.Object , err error ) {
2883
+ func (w * gRPCWriter ) uploadBuffer (ctx context. Context , recvd int , start int64 , doneReading bool ) (obj * storagepb.Object , err error ) {
2889
2884
if w .streamSender == nil {
2890
2885
if w .append {
2891
2886
// Appendable object semantics
@@ -2895,7 +2890,7 @@ func (w *gRPCWriter) uploadBuffer(recvd int, start int64, doneReading bool) (obj
2895
2890
w .streamSender , err = w .newGRPCOneshotBidiWriteBufferSender ()
2896
2891
} else {
2897
2892
// Resumable write semantics
2898
- w .streamSender , err = w .newGRPCResumableBidiWriteBufferSender ()
2893
+ w .streamSender , err = w .newGRPCResumableBidiWriteBufferSender (ctx )
2899
2894
}
2900
2895
if err != nil {
2901
2896
return
@@ -2915,7 +2910,7 @@ func (w *gRPCWriter) uploadBuffer(recvd int, start int64, doneReading bool) (obj
2915
2910
l = len (data )
2916
2911
flush = true
2917
2912
}
2918
- obj , err = w .streamSender .sendBuffer (data [:l ], offset , flush , flush && doneReading )
2913
+ obj , err = w .streamSender .sendBuffer (ctx , data [:l ], offset , flush , flush && doneReading )
2919
2914
if err != nil {
2920
2915
return nil , err
2921
2916
}
0 commit comments