mirror of
https://github.com/pgsty/minio.git
synced 2026-07-22 13:40:22 +03:00
Add a 'free' version to track deletion of tiered object content (#12470)
This commit is contained in:
committed by
GitHub
parent
dc6958b6a1
commit
a1df230518
@@ -156,6 +156,7 @@ func (fi FileInfo) ToObjectInfo(bucket, object string) ObjectInfo {
|
||||
objInfo.TransitionStatus = fi.TransitionStatus
|
||||
objInfo.transitionedObjName = fi.TransitionedObjName
|
||||
objInfo.transitionVersionID = fi.TransitionVersionID
|
||||
objInfo.tierFreeVersion = fi.TierFreeVersion()
|
||||
objInfo.TransitionTier = fi.TransitionTier
|
||||
|
||||
// etag/md5Sum has already been extracted. We need to
|
||||
@@ -362,3 +363,38 @@ func objectQuorumFromMeta(ctx context.Context, partsMetaData []FileInfo, errs []
|
||||
// from latestFileInfo to get the quorum
|
||||
return dataBlocks, writeQuorum, nil
|
||||
}
|
||||
|
||||
const (
|
||||
tierFVID = "tier-free-versionID"
|
||||
tierFVMarker = "tier-free-marker"
|
||||
)
|
||||
|
||||
// SetTierFreeVersionID sets free-version's versionID. This method is used by
|
||||
// object layer to pass down a versionID to set for a free-version that may be
|
||||
// created.
|
||||
func (fi *FileInfo) SetTierFreeVersionID(versionID string) {
|
||||
if fi.Metadata == nil {
|
||||
fi.Metadata = make(map[string]string)
|
||||
}
|
||||
fi.Metadata[ReservedMetadataPrefixLower+tierFVID] = versionID
|
||||
}
|
||||
|
||||
// TierFreeVersionID returns the free-version's version id.
|
||||
func (fi *FileInfo) TierFreeVersionID() string {
|
||||
return fi.Metadata[ReservedMetadataPrefixLower+tierFVID]
|
||||
}
|
||||
|
||||
// SetTierFreeVersion sets fi as a free-version. This method is used by
|
||||
// lower layers to indicate a free-version.
|
||||
func (fi *FileInfo) SetTierFreeVersion() {
|
||||
if fi.Metadata == nil {
|
||||
fi.Metadata = make(map[string]string)
|
||||
}
|
||||
fi.Metadata[ReservedMetadataPrefixLower+tierFVMarker] = ""
|
||||
}
|
||||
|
||||
// TierFreeVersion returns true if version is a free-version.
|
||||
func (fi *FileInfo) TierFreeVersion() bool {
|
||||
_, ok := fi.Metadata[ReservedMetadataPrefixLower+tierFVMarker]
|
||||
return ok
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user