code: func (h *Handler) UploadPublicKey(ctx context.Context) error {
  	h.pubKeyUploadMu.RLock()
  	if h.pubKeyUploaded {
  		h.pubKeyUploadMu.RUnlock()
  		return nil
  	}
  	h.pubKeyUploadMu.RUnlock()
  
  	sto := h.pubKeyDest
  
  	h.pubKeyUploadMu.Lock()
  	defer h.pubKeyUploadMu.Unlock()
  	if h.pubKeyUploaded {
  		return nil
  	}
  	_, err := blobserver.StatBlob(ctx, sto, h.pubKeyBlobRef)
  	if err == nil {
  		h.pubKeyUploaded = true
  		return nil
  	}
  	_, err = blobserver.Receive(ctx, sto, h.pubKeyBlobRef, strings.NewReader(h.pubKey))
  	h.pubKeyUploaded = (err == nil)
  	return err
  }
docs: // UploadPublicKey writes the public key to the destination blobserver
  // defined for the handler, if needed.