mirror of
https://github.com/minio/minio.git
synced 2025-04-19 18:17:30 -04:00
Preserve replica timestamps in multipart (#18318)
Also a backward compatibility fix to use x-amz-replica-status if present as replication status.
This commit is contained in:
parent
0663eb69ed
commit
96ec8fcba1
@ -180,6 +180,11 @@ func (fi FileInfo) ToObjectInfo(bucket, object string, versioned bool) ObjectInf
|
|||||||
objInfo.ReplicationStatusInternal = fi.ReplicationState.ReplicationStatusInternal
|
objInfo.ReplicationStatusInternal = fi.ReplicationState.ReplicationStatusInternal
|
||||||
objInfo.VersionPurgeStatusInternal = fi.ReplicationState.VersionPurgeStatusInternal
|
objInfo.VersionPurgeStatusInternal = fi.ReplicationState.VersionPurgeStatusInternal
|
||||||
objInfo.ReplicationStatus = fi.ReplicationStatus()
|
objInfo.ReplicationStatus = fi.ReplicationStatus()
|
||||||
|
if objInfo.ReplicationStatus.Empty() { // overlay x-amx-replication-status if present for replicas
|
||||||
|
if st, ok := fi.Metadata[xhttp.AmzBucketReplicationStatus]; ok && st == string(replication.Replica) {
|
||||||
|
objInfo.ReplicationStatus = replication.StatusType(st)
|
||||||
|
}
|
||||||
|
}
|
||||||
objInfo.VersionPurgeStatus = fi.VersionPurgeStatus()
|
objInfo.VersionPurgeStatus = fi.VersionPurgeStatus()
|
||||||
|
|
||||||
objInfo.TransitionedObject = TransitionedObject{
|
objInfo.TransitionedObject = TransitionedObject{
|
||||||
|
@ -143,7 +143,10 @@ func (api objectAPIHandlers) NewMultipartUploadHandler(w http.ResponseWriter, r
|
|||||||
|
|
||||||
metadata[xhttp.AmzObjectTagging] = objTags
|
metadata[xhttp.AmzObjectTagging] = objTags
|
||||||
}
|
}
|
||||||
|
if r.Header.Get(xhttp.AmzBucketReplicationStatus) == replication.Replica.String() {
|
||||||
|
metadata[ReservedMetadataPrefixLower+ReplicaStatus] = replication.Replica.String()
|
||||||
|
metadata[ReservedMetadataPrefixLower+ReplicaTimestamp] = UTCNow().Format(time.RFC3339Nano)
|
||||||
|
}
|
||||||
retPerms := isPutActionAllowed(ctx, getRequestAuthType(r), bucket, object, r, policy.PutObjectRetentionAction)
|
retPerms := isPutActionAllowed(ctx, getRequestAuthType(r), bucket, object, r, policy.PutObjectRetentionAction)
|
||||||
holdPerms := isPutActionAllowed(ctx, getRequestAuthType(r), bucket, object, r, policy.PutObjectLegalHoldAction)
|
holdPerms := isPutActionAllowed(ctx, getRequestAuthType(r), bucket, object, r, policy.PutObjectLegalHoldAction)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user