storage/storage_image.go
func (s *storageImageDestination) getConfigBlob(info types.BlobInfo) ([]byte, error) {
	if info.Digest == "" {
		return nil, errors.Errorf(`no digest supplied when reading blob`)
	}
	if err := info.Digest.Validate(); err != nil {
		return nil, errors.Wrapf(err, `invalid digest supplied when reading blob`)
	}
	// Assume it's a file, since we're only calling this from a place that expects to read files.
	if filename, ok := s.filenames[info.Digest]; ok {
		contents, err2 := ioutil.ReadFile(filename)
		if err2 != nil {
			return nil, errors.Wrapf(err2, `error reading blob from file %q`, filename)
		}
		return contents, nil
	}
	// If it's not a file, it's a bug, because we're not expecting to be asked for a layer.
	return nil, errors.New("blob not found")
}
func (s *storageImageDestination) getConfigBlob(info types.BlobInfo) ([]byte, error) {
	if info.Digest == "" {
		return nil, errors.Errorf(`no digest supplied when reading blob`)
	}
	if err := info.Digest.Validate(); err != nil {
		return nil, errors.Wrapf(err, `invalid digest supplied when reading blob`)
	}
	// Assume it's a file, since we're only calling this from a place that expects to read files.
	if filename, ok := s.filenames[info.Digest]; ok {
		contents, err2 := ioutil.ReadFile(filename)
		if err2 != nil {
			return nil, errors.Wrapf(err2, `error reading blob from file %q`, filename)
		}
		return contents, nil
	}
	// If it's not a file, it's a bug, because we're not expecting to be asked for a layer.
	return nil, errors.New("blob not found")
}
func ( s * storageImageDestination ) getConfigBlob ( info types . BlobInfo ) ( [ ] byte , error ) { if info . Digest == " " { return nil , errors . Errorf ( `no digest supplied when reading blob` ) } if err := info . Digest . Validate ( ) ; err != nil { return nil , errors . Wrapf ( err , `invalid digest supplied when reading blob` ) } // Assume it's a file, since we're only calling this from a place that expects to read files. if filename , ok := s . filenames [ info . Digest ] ; ok { contents , err2 := ioutil . ReadFile ( filename ) if err2 != nil { return nil , errors . Wrapf ( err2 , `error reading blob from file %q` , filename ) } return contents , nil } // If it's not a file, it's a bug, because we're not expecting to be asked for a layer. return nil , errors . New ( " " ) }
// getConfigBlob exists only to let us retrieve the configuration blob so that the manifest package can dig
// information out of it for Inspect().
getConfigBlob exists only to let us retrieve the configuration blob so that the manifest package can dig information out of it for Inspect () .