mirror of
https://github.com/minio/minio.git
synced 2024-12-25 06:35:56 -05:00
Display storage-class of transitioned object in HEAD
This commit is contained in:
parent
95675b0c9a
commit
08b24620c0
@ -200,6 +200,9 @@ func setObjectHeaders(w http.ResponseWriter, objInfo ObjectInfo, rs *HTTPRangeSp
|
|||||||
fmt.Sprintf(`expiry-date="%s", rule-id="%s"`, expiryTime.Format(http.TimeFormat), ruleID),
|
fmt.Sprintf(`expiry-date="%s", rule-id="%s"`, expiryTime.Format(http.TimeFormat), ruleID),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if objInfo.TransitionStatus == lifecycle.TransitionComplete {
|
||||||
|
w.Header()[xhttp.AmzStorageClass] = []string{objInfo.StorageClass}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@ -168,6 +168,23 @@ func validateTransitionDestination(ctx context.Context, bucket string, targetLab
|
|||||||
return sameTarget, arn.Bucket, nil
|
return sameTarget, arn.Bucket, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// transitionSC returns storage class label for this bucket
|
||||||
|
func transitionSC(ctx context.Context, bucket string) string {
|
||||||
|
cfg, err := globalBucketMetadataSys.GetLifecycleConfig(bucket)
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
for _, rule := range cfg.Rules {
|
||||||
|
if rule.Status == Disabled {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if rule.Transition.StorageClass != "" {
|
||||||
|
return rule.Transition.StorageClass
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
// return true if ARN representing transition storage class is present in a active rule
|
// return true if ARN representing transition storage class is present in a active rule
|
||||||
// for the lifecycle configured on this bucket
|
// for the lifecycle configured on this bucket
|
||||||
func transitionSCInUse(ctx context.Context, lfc *lifecycle.Lifecycle, bucket, arnStr string) bool {
|
func transitionSCInUse(ctx context.Context, lfc *lifecycle.Lifecycle, bucket, arnStr string) bool {
|
||||||
|
@ -424,8 +424,14 @@ func (er erasureObjects) getObjectInfo(ctx context.Context, bucket, object strin
|
|||||||
// Make sure to return object info to provide extra information.
|
// Make sure to return object info to provide extra information.
|
||||||
return objInfo, toObjectErr(errMethodNotAllowed, bucket, object)
|
return objInfo, toObjectErr(errMethodNotAllowed, bucket, object)
|
||||||
}
|
}
|
||||||
|
oi := fi.ToObjectInfo(bucket, object)
|
||||||
return fi.ToObjectInfo(bucket, object), nil
|
if oi.TransitionStatus == lifecycle.TransitionComplete {
|
||||||
|
// overlay storage class for transitioned objects with transition tier SC Label
|
||||||
|
if sc := transitionSC(ctx, bucket); sc != "" {
|
||||||
|
oi.StorageClass = sc
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return oi, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func undoRename(disks []StorageAPI, srcBucket, srcEntry, dstBucket, dstEntry string, isDir bool, errs []error) {
|
func undoRename(disks []StorageAPI, srcBucket, srcEntry, dstBucket, dstEntry string, isDir bool, errs []error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user