|
|
|
### Backend format `xl.json`
|
|
|
|
|
|
|
|
```go
|
|
|
|
// ObjectPartInfo Info of each part kept in the multipart metadata
|
|
|
|
// file after CompleteMultipartUpload() is called.
|
|
|
|
type ObjectPartInfo struct {
|
|
|
|
Number int `json:"number"`
|
|
|
|
Name string `json:"name"`
|
|
|
|
ETag string `json:"etag"`
|
|
|
|
Size int64 `json:"size"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// checkSumInfo - carries checksums of individual scattered parts per disk.
|
|
|
|
type checkSumInfo struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
Algorithm string `json:"algorithm"`
|
|
|
|
Hash string `json:"hash"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// erasureInfo - carries erasure coding related information, block
|
|
|
|
// distribution and checksums.
|
|
|
|
type erasureInfo struct {
|
|
|
|
Algorithm string `json:"algorithm"`
|
|
|
|
DataBlocks int `json:"data"`
|
|
|
|
ParityBlocks int `json:"parity"`
|
|
|
|
BlockSize int64 `json:"blockSize"`
|
|
|
|
Index int `json:"index"`
|
|
|
|
Distribution []int `json:"distribution"`
|
|
|
|
Checksum []checkSumInfo `json:"checksum,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// statInfo - carries stat information of the object.
|
|
|
|
type statInfo struct {
|
|
|
|
Size int64 `json:"size"` // Size of the object `xl.json`.
|
|
|
|
ModTime time.Time `json:"modTime"` // ModTime of the object `xl.json`.
|
|
|
|
}
|
|
|
|
|
|
|
|
// A xlMetaV1 represents `xl.json` metadata header.
|
|
|
|
type xlMetaV1 struct {
|
|
|
|
Version string `json:"version"` // Version of the current `xl.json`.
|
|
|
|
Format string `json:"format"` // Format of the current `xl.json`.
|
|
|
|
Stat statInfo `json:"stat"` // Stat of the current object `xl.json`.
|
|
|
|
// Erasure coded info for the current object `xl.json`.
|
|
|
|
Erasure erasureInfo `json:"erasure"`
|
|
|
|
// Minio release tag for current object `xl.json`.
|
|
|
|
Minio struct {
|
|
|
|
Release string `json:"release"`
|
|
|
|
} `json:"minio"`
|
|
|
|
// Metadata map for current object `xl.json`.
|
|
|
|
Meta map[string]string `json:"meta,omitempty"`
|
|
|
|
// Captures all the individual object `xl.json`.
|
|
|
|
Parts []ObjectPartInfo `json:"parts,omitempty"`
|
|
|
|
}
|
|
|
|
```
|