@@ -164,7 +164,7 @@ func (g *GCPStorage) create(ctx context.Context, req *bindings.InvokeRequest) (*
164
164
var err error
165
165
metadata , err := g .metadata .mergeWithRequestMetadata (req )
166
166
if err != nil {
167
- return nil , fmt .Errorf ("gcp bucket binding error. error merge metadata : %w" , err )
167
+ return nil , fmt .Errorf ("gcp bucket binding error while merging metadata : %w" , err )
168
168
}
169
169
170
170
var name string
@@ -186,14 +186,23 @@ func (g *GCPStorage) create(ctx context.Context, req *bindings.InvokeRequest) (*
186
186
}
187
187
188
188
h := g .client .Bucket (g .metadata .Bucket ).Object (name ).NewWriter (ctx )
189
- defer h .Close ()
189
+ // Cannot do ` defer h.Close()` as Close() will flush the bytes and need to have error handling.
190
190
if _ , err = io .Copy (h , r ); err != nil {
191
- return nil , fmt .Errorf ("gcp bucket binding error. Uploading: %w" , err )
191
+ cerr := h .Close ()
192
+ if cerr != nil {
193
+ return nil , fmt .Errorf ("gcp bucket binding error while uploading and closing: %w" , err )
194
+ }
195
+ return nil , fmt .Errorf ("gcp bucket binding error while uploading: %w" , err )
196
+ }
197
+
198
+ err = h .Close ()
199
+ if err != nil {
200
+ return nil , fmt .Errorf ("gcp bucket binding error while flushing: %w" , err )
192
201
}
193
202
194
203
objectURL , err := url .Parse (fmt .Sprintf (objectURLBase , g .metadata .Bucket , name ))
195
204
if err != nil {
196
- return nil , fmt .Errorf ("gcp bucket binding error. error building url response: %w" , err )
205
+ return nil , fmt .Errorf ("gcp bucket binding error while building url response: %w" , err )
197
206
}
198
207
199
208
resp := createResponse {
@@ -202,7 +211,7 @@ func (g *GCPStorage) create(ctx context.Context, req *bindings.InvokeRequest) (*
202
211
203
212
b , err := json .Marshal (resp )
204
213
if err != nil {
205
- return nil , fmt .Errorf ("gcp binding error. error marshalling create response: %w" , err )
214
+ return nil , fmt .Errorf ("gcp bucket binding error while marshalling the create response: %w" , err )
206
215
}
207
216
208
217
return & bindings.InvokeResponse {
@@ -213,7 +222,7 @@ func (g *GCPStorage) create(ctx context.Context, req *bindings.InvokeRequest) (*
213
222
func (g * GCPStorage ) get (ctx context.Context , req * bindings.InvokeRequest ) (* bindings.InvokeResponse , error ) {
214
223
metadata , err := g .metadata .mergeWithRequestMetadata (req )
215
224
if err != nil {
216
- return nil , fmt .Errorf ("gcp binding error. error merge metadata : %w" , err )
225
+ return nil , fmt .Errorf ("gcp binding error while merging metadata : %w" , err )
217
226
}
218
227
219
228
var key string
@@ -231,13 +240,13 @@ func (g *GCPStorage) get(ctx context.Context, req *bindings.InvokeRequest) (*bin
231
240
return nil , errors .New ("object not found" )
232
241
}
233
242
234
- return nil , fmt .Errorf ("gcp bucketgcp bucket binding error: error downloading bucket object: %w" , err )
243
+ return nil , fmt .Errorf ("gcp bucketgcp bucket binding error while downloading object: %w" , err )
235
244
}
236
245
defer rc .Close ()
237
246
238
247
data , err := io .ReadAll (rc )
239
248
if err != nil {
240
- return nil , fmt .Errorf ("gcp bucketgcp bucket binding error: io.ReadAll : %v" , err )
249
+ return nil , fmt .Errorf ("gcp bucketgcp bucket binding error while reading : %v" , err )
241
250
}
242
251
243
252
if metadata .EncodeBase64 {
@@ -299,7 +308,7 @@ func (g *GCPStorage) list(ctx context.Context, req *bindings.InvokeRequest) (*bi
299
308
300
309
jsonResponse , err := json .Marshal (result )
301
310
if err != nil {
302
- return nil , fmt .Errorf ("gcp bucketgcp bucket binding error. list operation. cannot marshal blobs to json: %w" , err )
311
+ return nil , fmt .Errorf ("gcp bucketgcp bucket binding error while listing: cannot marshal blobs to json: %w" , err )
303
312
}
304
313
305
314
return & bindings.InvokeResponse {
@@ -348,7 +357,7 @@ func (g *GCPStorage) GetComponentMetadata() (metadataInfo metadata.MetadataMap)
348
357
func (g * GCPStorage ) sign (ctx context.Context , req * bindings.InvokeRequest ) (* bindings.InvokeResponse , error ) {
349
358
metadata , err := g .metadata .mergeWithRequestMetadata (req )
350
359
if err != nil {
351
- return nil , fmt .Errorf ("gcp binding error. error merge metadata : %w" , err )
360
+ return nil , fmt .Errorf ("gcp binding error while merging metadata : %w" , err )
352
361
}
353
362
354
363
var key string
@@ -371,7 +380,7 @@ func (g *GCPStorage) sign(ctx context.Context, req *bindings.InvokeRequest) (*bi
371
380
SignURL : signURL ,
372
381
})
373
382
if err != nil {
374
- return nil , fmt .Errorf ("gcp bucket binding error: error marshalling sign response: %w" , err )
383
+ return nil , fmt .Errorf ("gcp bucket binding error while marshalling sign response: %w" , err )
375
384
}
376
385
return & bindings.InvokeResponse {
377
386
Data : jsonResponse ,
@@ -381,7 +390,7 @@ func (g *GCPStorage) sign(ctx context.Context, req *bindings.InvokeRequest) (*bi
381
390
func (g * GCPStorage ) signObject (bucket , object , ttl string ) (string , error ) {
382
391
d , err := time .ParseDuration (ttl )
383
392
if err != nil {
384
- return "" , fmt .Errorf ("gcp bucket binding error: error parsing signTTL: %w" , err )
393
+ return "" , fmt .Errorf ("gcp bucket binding error while parsing signTTL: %w" , err )
385
394
}
386
395
opts := & storage.SignedURLOptions {
387
396
Scheme : storage .SigningSchemeV4 ,
0 commit comments