code: func (p *FileProvider) loadCredentials(filename string) (Value, error) {
  	f, err := os.Open(filename)
  	if err != nil {
  		return Value{ProviderName: FileCredentialsProviderName},
  			fmt.Errorf("%s: %s", ErrFileCredentialsLoadFailed.Error(), err)
  	}
  	defer f.Close()
  
  	var value Value
  	if err := json.NewDecoder(f).Decode(&value); err != nil {
  		return Value{ProviderName: FileCredentialsProviderName},
  			fmt.Errorf("%s: %s", ErrFileCredentialsLoadFailed.Error(), err)
  	}
  	if token := value.Token; len(token) == 0 {
  		return Value{ProviderName: FileCredentialsProviderName},
  			ErrFileCredentialsTokenNotFound
  	}
  
  	return value, nil
  }
docs: // loadCredentials loads the credentials from the file pointed to by filename.
  // The credentials retrieved from the profile will be returned or error. Error will be
  // returned if it fails to read from the file, or the data is invalid.