code: func (f *DatastoreFile) Seek(offset int64, whence int) (int64, error) {
  	switch whence {
  	case io.SeekStart:
  	case io.SeekCurrent:
  		offset += f.offset.seek
  	case io.SeekEnd:
  		if f.length < 0 {
  			_, err := f.Stat()
  			if err != nil {
  				return 0, err
  			}
  		}
  		offset += f.length
  	default:
  		return 0, errors.New("Seek: invalid whence")
  	}
  
  	// allow negative SeekStart for initial Range request
  	if offset < 0 {
  		return 0, errors.New("Seek: invalid offset")
  	}
  
  	f.offset.seek = offset
  
  	return offset, nil
  }
docs: // Seek sets the offset for the next Read on the DatastoreFile.