code: func (w *prodWriter) Write(d []byte) (a int, err error) {
  	if w.Writer == nil {
  		w.Writer = w.client.baseClient.Bucket(w.bucket).Object(w.relpath).NewWriter(w)
  	}
  
  	err = retry.Retry(w, transient.Only(retry.Default), func() (ierr error) {
  		a, ierr = w.Writer.Write(d)
  
  		// Assume all Write errors are transient.
  		ierr = transient.Tag.Apply(ierr)
  		return
  	}, func(err error, d time.Duration) {
  		log.Fields{
  			log.ErrorKey: err,
  			"delay":      d,
  			"bucket":     w.bucket,
  			"path":       w.relpath,
  		}.Warningf(w, "Transient error on GS write. Retrying...")
  	})
  
  	w.count += int64(a)
  	return
  }
docs: // Write writes data with exponenital backoff/retry.