mirror of
https://github.com/minio/minio.git
synced 2026-02-04 18:00:15 -05:00
fix: return error on conditional write for non existing object (#21550)
This commit is contained in:
@@ -1277,6 +1277,11 @@ func (er erasureObjects) putObject(ctx context.Context, bucket string, object st
|
|||||||
if err != nil && !isErrVersionNotFound(err) && !isErrObjectNotFound(err) && !isErrReadQuorum(err) {
|
if err != nil && !isErrVersionNotFound(err) && !isErrObjectNotFound(err) && !isErrReadQuorum(err) {
|
||||||
return objInfo, err
|
return objInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if object doesn't exist and not a replication request return error for conditional requests
|
||||||
|
if err != nil && !opts.ReplicationRequest {
|
||||||
|
return objInfo, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate input data size and it can never be less than -1.
|
// Validate input data size and it can never be less than -1.
|
||||||
|
|||||||
@@ -414,12 +414,16 @@ func putOptsFromHeaders(ctx context.Context, hdr http.Header, metadata map[strin
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return ObjectOptions{}, err
|
return ObjectOptions{}, err
|
||||||
}
|
}
|
||||||
return ObjectOptions{
|
op := ObjectOptions{
|
||||||
ServerSideEncryption: sseKms,
|
ServerSideEncryption: sseKms,
|
||||||
UserDefined: metadata,
|
UserDefined: metadata,
|
||||||
MTime: mtime,
|
MTime: mtime,
|
||||||
PreserveETag: etag,
|
PreserveETag: etag,
|
||||||
}, nil
|
}
|
||||||
|
if _, ok := hdr[xhttp.MinIOSourceReplicationRequest]; ok {
|
||||||
|
op.ReplicationRequest = true
|
||||||
|
}
|
||||||
|
return op, nil
|
||||||
}
|
}
|
||||||
// default case of passing encryption headers and UserDefined metadata to backend
|
// default case of passing encryption headers and UserDefined metadata to backend
|
||||||
opts, err = getDefaultOpts(hdr, false, metadata)
|
opts, err = getDefaultOpts(hdr, false, metadata)
|
||||||
|
|||||||
Reference in New Issue
Block a user