MCPcopy
hub / github.com/containerd/containerd / createAndCopy

Method createAndCopy

core/metadata/content.go:556–580  ·  view source on GitHub ↗
(ctx context.Context, desc ocispec.Descriptor)

Source from the content-addressed store, hash-verified

554}
555
556func (nw *namespacedWriter) createAndCopy(ctx context.Context, desc ocispec.Descriptor) error {
557 nwDescWithoutDigest := desc
558 nwDescWithoutDigest.Digest = ""
559 w, err := nw.provider.Writer(ctx, content.WithRef(nw.bref), content.WithDescriptor(nwDescWithoutDigest))
560 if err != nil {
561 return err
562 }
563
564 if desc.Size > 0 {
565 ra, err := nw.provider.ReaderAt(ctx, nw.desc)
566 if err != nil {
567 w.Close()
568 return err
569 }
570 defer ra.Close()
571
572 if err := content.CopyReaderAt(w, ra, desc.Size); err != nil {
573 w.Close()
574 return err
575 }
576 }
577 nw.w = w
578
579 return nil
580}
581
582func (nw *namespacedWriter) Commit(ctx context.Context, size int64, expected digest.Digest, opts ...content.Opt) error {
583 ctx = namespaces.WithNamespace(ctx, nw.namespace)

Callers 2

WriteMethod · 0.95
TruncateMethod · 0.95

Calls 6

WithRefFunction · 0.92
WithDescriptorFunction · 0.92
CopyReaderAtFunction · 0.92
WriterMethod · 0.65
ReaderAtMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected