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
}