func()

in experimental/blobs.go [70:98]


func (b blobsData) addBlob(segments []string, info fileInfo) error {
	if len(segments) != 4 {
		return fmt.Errorf("unparseable path: %v", segments)
	}

	if segments[3] != "data" {
		return fmt.Errorf("file needs to be data: %v", segments)
	}

	digest, err := newDigestFromScopedPath(segments[0:3])
	if err != nil {
		return err
	}

	if segments[0] != "sha256" {
		return fmt.Errorf("path needs to start with sha256: %v", segments)
	}

	blobsLock.Lock()
	defer blobsLock.Unlock()

	blob := &blobData{
		name: digest,
		size: info.size,
		etag: info.etag,
	}
	b[digest] = blob
	return nil
}