mirror of https://github.com/perkeep/perkeep.git
39 lines
1.5 KiB
Plaintext
39 lines
1.5 KiB
Plaintext
Description of a series of bytes.
|
|
|
|
A "bytes" is a metadata (JSON) blob to describe blobs. It's a recursive
|
|
definition that's able to describe a hash tree, describing very large
|
|
blobs (or "files").
|
|
|
|
A "bytes" blob can be used on its own, but is also used by things like
|
|
a "file" schema blob.
|
|
|
|
|
|
{"camliVersion": 1,
|
|
"camliType": "bytes",
|
|
|
|
// Required. Array of contiguous regions of bytes. Zero or more elements.
|
|
//
|
|
// Each element must have:
|
|
// "size": the number of bytes that this element contributes to array of bytes.
|
|
// Required, and must be greater than zero.
|
|
//
|
|
// At most one of:
|
|
// "blobRef": where to get the raw bytes from. if this and "bytesRef"
|
|
// are missing, the bytes are all zero (e.g. a sparse file hole)
|
|
// "bytesRef": alternative to blobRef, where to get the range's bytes
|
|
// from, but pointing recursively at a "bytes" schema blob
|
|
// describing the range, recursively. large files are made of
|
|
// these in a hash tree. it is an error if both "bytesRef"
|
|
// and "blobRef" are specified.
|
|
//
|
|
// Optional:
|
|
// "offset": the number of bytes into blobRef or bytesRef to skip to
|
|
// get the necessary bytes for the range. usually zero (unspecified)
|
|
"parts": [
|
|
{"blobRef": "digalg-blobref", "size": 1024},
|
|
{"bytesRef": "digalg-blobref", "size": 5000000, "offset": 492 },
|
|
{"size": 1000000},
|
|
{"blobRef": "digalg-blobref", "size": 10},
|
|
]
|
|
}
|