code: func (s *DriveService) Upsert(ctx context.Context, title string, data io.Reader) (file *client.File, err error) {
  	if file, err = s.Get(ctx, title); err != nil {
  		if !os.IsNotExist(err) {
  			return
  		}
  	}
  	if file == nil {
  		file = &client.File{Title: title}
  		file.Parents = []*client.ParentReference{
  			{Id: s.parentID},
  		}
  		file.MimeType = MimeTypeCamliBlob
  		return s.apiservice.Files.Insert(file).Media(data).Context(ctx).Do()
  	}
  
  	// TODO: handle large blobs
  	return s.apiservice.Files.Update(file.Id, file).Media(data).Context(ctx).Do()
  }
docs: // Upsert inserts a file, or updates if such a file exists.