code: func (locker *Etcd3Locker) LockUpload(id string) error {
  	session, err := locker.createSession()
  	if err != nil {
  		return err
  	}
  
  	lock := newEtcd3Lock(session, locker.getId(id))
  
  	err = lock.Acquire()
  	if err != nil {
  		return err
  	}
  
  	locker.mutex.Lock()
  	defer locker.mutex.Unlock()
  	// Only add the lock to our list if the acquire was successful and no error appeared.
  	locker.locks[locker.getId(id)] = lock
  
  	return nil
  }
docs: // LockUpload tries to obtain the exclusive lock.