Documentation
¶
Overview ¶
Package pack is the format of a remote-cache pack: one stored object that holds several small layer blobs, so that they upload, download and are addressed as one. A pack is a header listing its members, then the members' bytes in that order, unchanged. Its ID is the digest of its header, so the service names a pack from its member list alone, and an engine verifies the header against the ID and each member against its own digest, as it verifies any blob.
Index ¶
Constants ¶
const ( // MaxMembers, MaxHeaderBytes and MaxBytes bound a pack an engine reads: // its members, its header and its whole object. MaxMembers = 4096 MaxHeaderBytes = 512 << 10 MaxBytes = 64 << 20 )
Variables ¶
This section is empty.
Functions ¶
func Header ¶
Header returns the header of a pack of members:
dagger-pack v1 <n> sha256:<hex> <size> (one line per member, in order)
It fails on no members, a digest that is not a valid sha256, a negative size, a member listed twice, or a pack over the limits.
Types ¶
type Member ¶
Member is one blob of a pack, in pack order.
func ReadHeader ¶
ReadHeader reads a pack's header from r, leaving r at the first member's bytes, and checks it against the pack's ID: the bytes read must be the header Header writes for the members they list, and hash to the ID. It returns the members.