Skip to content

Commit 237ded8

Browse files
committed
add error handling and connection pool close to gcs.go
1 parent 8f6fe6b commit 237ded8

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

pkg/storage/gcs.go

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ func (gcs *GCS) Connect(ctx context.Context) error {
120120
}
121121

122122
func (gcs *GCS) Close(ctx context.Context) error {
123+
gcs.clientPool.Close(ctx)
123124
return gcs.client.Close()
124125
}
125126

@@ -174,10 +175,14 @@ func (gcs *GCS) GetFileReader(ctx context.Context, key string) (io.ReadCloser, e
174175
obj := pClient.Bucket(gcs.Config.Bucket).Object(path.Join(gcs.Config.Path, key))
175176
reader, err := obj.NewReader(ctx)
176177
if err != nil {
177-
gcs.clientPool.InvalidateObject(ctx, pClientObj)
178+
if pErr := gcs.clientPool.InvalidateObject(ctx, pClientObj); pErr != nil {
179+
log.Warnf("GetFileReader: gcs.clientPool.InvalidateObject error: %v ", pErr)
180+
}
178181
return nil, err
179182
}
180-
gcs.clientPool.ReturnObject(ctx, pClientObj)
183+
if pErr := gcs.clientPool.ReturnObject(ctx, pClientObj); pErr != nil {
184+
log.Warnf("GetFileReader: gcs.clientPool.ReturnObject error: %v ", pErr)
185+
}
181186
return reader, nil
182187
}
183188

@@ -202,14 +207,17 @@ func (gcs *GCS) PutFile(ctx context.Context, key string, r io.ReadCloser) error
202207
}
203208
defer func() {
204209
if err := writer.Close(); err != nil {
205-
log.Warnf("can't close writer: %+v", err)
206-
gcs.clientPool.InvalidateObject(ctx, pClientObj)
207-
210+
log.Warnf("gcs.PutFile: can't close writer: %+v", err)
211+
if err = gcs.clientPool.InvalidateObject(ctx, pClientObj); err != nil {
212+
log.Warnf("gcs.PutFile: gcs.clientPool.InvalidateObject error: %+v", err)
213+
}
208214
return
209215
}
210-
gcs.clientPool.ReturnObject(ctx, pClientObj)
216+
if err = gcs.clientPool.ReturnObject(ctx, pClientObj); err != nil {
217+
log.Warnf("gcs.PutFile: gcs.clientPool.ReturnObject error: %+v", err)
218+
}
211219
}()
212-
buffer := make([]byte, 512*1024)
220+
buffer := make([]byte, 128*1024)
213221
_, err = io.CopyBuffer(writer, r, buffer)
214222
return err
215223
}
@@ -239,10 +247,14 @@ func (gcs *GCS) deleteKey(ctx context.Context, key string) error {
239247
object := pClient.Bucket(gcs.Config.Bucket).Object(key)
240248
err = object.Delete(ctx)
241249
if err != nil {
242-
gcs.clientPool.InvalidateObject(ctx, pClientObj)
250+
if pErr := gcs.clientPool.InvalidateObject(ctx, pClientObj); pErr != nil {
251+
log.Warnf("gcs.deleteKey: gcs.clientPool.InvalidateObject error: %+v", pErr)
252+
}
243253
return err
244254
}
245-
gcs.clientPool.ReturnObject(ctx, pClientObj)
255+
if pErr := gcs.clientPool.ReturnObject(ctx, pClientObj); pErr != nil {
256+
log.Warnf("gcs.deleteKey: gcs.clientPool.ReturnObject error: %+v", pErr)
257+
}
246258
return nil
247259
}
248260

@@ -268,15 +280,21 @@ func (gcs *GCS) CopyObject(ctx context.Context, srcBucket, srcKey, dstKey string
268280
dst := pClient.Bucket(gcs.Config.Bucket).Object(dstKey)
269281
attrs, err := src.Attrs(ctx)
270282
if err != nil {
271-
gcs.clientPool.InvalidateObject(ctx, pClientObj)
283+
if pErr := gcs.clientPool.InvalidateObject(ctx, pClientObj); pErr != nil {
284+
log.Warnf("gcs.CopyObject: gcs.clientPool.InvalidateObject error: %+v", pErr)
285+
}
272286
return 0, err
273287
}
274288
if _, err = dst.CopierFrom(src).Run(ctx); err != nil {
275-
gcs.clientPool.InvalidateObject(ctx, pClientObj)
289+
if pErr := gcs.clientPool.InvalidateObject(ctx, pClientObj); pErr != nil {
290+
log.Warnf("gcs.CopyObject: gcs.clientPool.InvalidateObject error: %+v", pErr)
291+
}
276292
return 0, err
277293
}
278294
log.Debugf("GCS->CopyObject %s/%s -> %s/%s", srcBucket, srcKey, gcs.Config.Bucket, dstKey)
279-
gcs.clientPool.ReturnObject(ctx, pClientObj)
295+
if pErr := gcs.clientPool.ReturnObject(ctx, pClientObj); pErr != nil {
296+
log.Warnf("gcs.CopyObject: gcs.clientPool.ReturnObject error: %+v", pErr)
297+
}
280298
return attrs.Size, nil
281299
}
282300

0 commit comments

Comments
 (0)