code: func (c *Cache) WriteCloser(id string) (ItemInfo, io.WriteCloser, error) {
  	id = cleanID(id)
  	c.nlocker.Lock(id)
  
  	info := ItemInfo{Name: id}
  
  	f, err := helpers.OpenFileForWriting(c.Fs, id)
  	if err != nil {
  		c.nlocker.Unlock(id)
  		return info, nil, err
  	}
  
  	return info, &lockedFile{
  		File:   f,
  		unlock: func() { c.nlocker.Unlock(id) },
  	}, nil
  }
docs: // WriteCloser returns a transactional writer into the cache.
  // It's important that it's closed when done.