MCPcopy Create free account
hub / github.com/bufbuild/buf / NewFileSetForBucket

Function NewFileSetForBucket

private/pkg/cas/file_set.go:77–112  ·  view source on GitHub ↗

NewFileSetForBucket returns a new FileSet for the given ReadBucket.

(ctx context.Context, bucket storage.ReadBucket, digestType DigestType)

Source from the content-addressed store, hash-verified

75
76// NewFileSetForBucket returns a new FileSet for the given ReadBucket.
77func NewFileSetForBucket(ctx context.Context, bucket storage.ReadBucket, digestType DigestType) (FileSet, error) {
78 var fileNodes []FileNode
79 var blobs []Blob
80 if err := storage.WalkReadObjects(
81 ctx,
82 bucket,
83 "",
84 func(readObject storage.ReadObject) error {
85 blob, err := NewBlobForContent(digestType, readObject)
86 if err != nil {
87 return fmt.Errorf("error creating Blob for file %q: %w", readObject.Path(), err)
88 }
89 fileNode, err := NewFileNode(readObject.Path(), blob.Digest())
90 if err != nil {
91 return fmt.Errorf("error creating FileNode for file %q: %w", readObject.Path(), err)
92 }
93 fileNodes = append(fileNodes, fileNode)
94 blobs = append(blobs, blob)
95 return nil
96 },
97 ); err != nil {
98 return nil, err
99 }
100 manifest, err := NewManifest(fileNodes)
101 if err != nil {
102 return nil, err
103 }
104 blobSet, err := NewBlobSet(blobs)
105 if err != nil {
106 return nil, err
107 }
108 return newFileSet(
109 manifest,
110 blobSet,
111 ), nil
112}
113
114// PutFileSetToBucket writes the FileSet to the given WriteBucket.
115func PutFileSetToBucket(

Callers

nothing calls this directly

Calls 8

WalkReadObjectsFunction · 0.92
NewBlobForContentFunction · 0.85
NewFileNodeFunction · 0.85
NewManifestFunction · 0.85
NewBlobSetFunction · 0.85
newFileSetFunction · 0.85
PathMethod · 0.65
DigestMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…