mirror of
https://github.com/minio/minio.git
synced 2025-02-23 03:22:30 -05:00
fix: batch replication from source allow out of band deletes (#18423)
it is possible that ILM or Deletes got triggered on batch of objects that we are attempting to batch replicate, ignore this scenario as valid behavior.
This commit is contained in:
parent
91d8bddbd1
commit
54721b7c7b
@ -163,7 +163,7 @@ func (r *BatchJobReplicateV1) ReplicateFromSource(ctx context.Context, api Objec
|
|||||||
}
|
}
|
||||||
rd, objInfo, _, err := core.GetObject(ctx, srcBucket, srcObject, gopts)
|
rd, objInfo, _, err := core.GetObject(ctx, srcBucket, srcObject, gopts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return ErrorRespToObjectError(err, srcBucket, srcObject, srcObjInfo.VersionID)
|
||||||
}
|
}
|
||||||
defer rd.Close()
|
defer rd.Close()
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ func (r *BatchJobReplicateV1) copyWithMultipartfromSource(ctx context.Context, a
|
|||||||
}
|
}
|
||||||
rd, objInfo, _, err := c.GetObject(ctx, srcBucket, srcObject, gopts)
|
rd, objInfo, _, err := c.GetObject(ctx, srcBucket, srcObject, gopts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return ErrorRespToObjectError(err, srcBucket, srcObject, srcObjInfo.VersionID)
|
||||||
}
|
}
|
||||||
defer rd.Close()
|
defer rd.Close()
|
||||||
|
|
||||||
|
10
cmd/utils.go
10
cmd/utils.go
@ -99,12 +99,16 @@ func ErrorRespToObjectError(err error, params ...string) error {
|
|||||||
|
|
||||||
bucket := ""
|
bucket := ""
|
||||||
object := ""
|
object := ""
|
||||||
|
versionID := ""
|
||||||
if len(params) >= 1 {
|
if len(params) >= 1 {
|
||||||
bucket = params[0]
|
bucket = params[0]
|
||||||
}
|
}
|
||||||
if len(params) == 2 {
|
if len(params) == 2 {
|
||||||
object = params[1]
|
object = params[1]
|
||||||
}
|
}
|
||||||
|
if len(params) == 3 {
|
||||||
|
versionID = params[2]
|
||||||
|
}
|
||||||
|
|
||||||
if xnet.IsNetworkOrHostDown(err, false) {
|
if xnet.IsNetworkOrHostDown(err, false) {
|
||||||
return BackendDown{Err: err.Error()}
|
return BackendDown{Err: err.Error()}
|
||||||
@ -142,6 +146,12 @@ func ErrorRespToObjectError(err error, params ...string) error {
|
|||||||
} else {
|
} else {
|
||||||
err = BucketNotFound{Bucket: bucket}
|
err = BucketNotFound{Bucket: bucket}
|
||||||
}
|
}
|
||||||
|
case "NoSuchVersion":
|
||||||
|
if object != "" {
|
||||||
|
err = ObjectNotFound{Bucket: bucket, Object: object, VersionID: versionID}
|
||||||
|
} else {
|
||||||
|
err = BucketNotFound{Bucket: bucket}
|
||||||
|
}
|
||||||
case "XMinioInvalidObjectName":
|
case "XMinioInvalidObjectName":
|
||||||
err = ObjectNameInvalid{}
|
err = ObjectNameInvalid{}
|
||||||
case "AccessDenied":
|
case "AccessDenied":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user