From fe70b1e8b0cae030d4cc2887c0c24459161e8629 Mon Sep 17 00:00:00 2001 From: Jarek Kowalski Date: Sat, 12 Aug 2017 16:36:12 -0700 Subject: [PATCH] re-added conditional PutObject --- blob/gcs/gcs_storage.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/blob/gcs/gcs_storage.go b/blob/gcs/gcs_storage.go index 052e10c86..0a66afae2 100644 --- a/blob/gcs/gcs_storage.go +++ b/blob/gcs/gcs_storage.go @@ -127,7 +127,11 @@ func translateError(err error) error { func (gcs *gcsStorage) PutBlock(b string, data []byte, options blob.PutOptions) error { attempt := func() (interface{}, error) { - writer := gcs.bucket.Object(gcs.getObjectNameString(b)).NewWriter(gcs.ctx) + o := gcs.bucket.Object(gcs.getObjectNameString(b)) + if options&blob.PutOptionsOverwrite == 0 { + o = o.If(storage.Conditions{DoesNotExist: true}) + } + writer := o.NewWriter(gcs.ctx) n, err := writer.Write(data) if err != nil { return nil, err