mirror of
https://github.com/minio/minio.git
synced 2025-04-01 02:03:42 -04:00
Allow asterisk character in key names (#2487)
This commit is contained in:
parent
95c16f51cb
commit
73d1a46f3e
@ -118,7 +118,7 @@ const (
|
|||||||
ErrFilterNameInvalid
|
ErrFilterNameInvalid
|
||||||
ErrFilterNamePrefix
|
ErrFilterNamePrefix
|
||||||
ErrFilterNameSuffix
|
ErrFilterNameSuffix
|
||||||
ErrFilterPrefixValueInvalid
|
ErrFilterValueInvalid
|
||||||
|
|
||||||
// S3 extended errors.
|
// S3 extended errors.
|
||||||
ErrContentSHA256Mismatch
|
ErrContentSHA256Mismatch
|
||||||
@ -500,9 +500,9 @@ var errorCodeResponse = map[APIErrorCode]APIError{
|
|||||||
Description: "Cannot specify more than one suffix rule in a filter.",
|
Description: "Cannot specify more than one suffix rule in a filter.",
|
||||||
HTTPStatusCode: http.StatusBadRequest,
|
HTTPStatusCode: http.StatusBadRequest,
|
||||||
},
|
},
|
||||||
ErrFilterPrefixValueInvalid: {
|
ErrFilterValueInvalid: {
|
||||||
Code: "InvalidArgument",
|
Code: "InvalidArgument",
|
||||||
Description: "prefix rule value cannot exceed 1024 characters",
|
Description: "Size of filter rule value cannot exceed 1024 bytes in UTF-8 representation",
|
||||||
HTTPStatusCode: http.StatusBadRequest,
|
HTTPStatusCode: http.StatusBadRequest,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -88,9 +88,8 @@ func checkFilterRules(filterRules []filterRule) APIErrorCode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Maximum prefix length can be up to 1,024 characters, validate.
|
|
||||||
if !IsValidObjectPrefix(filterRule.Value) {
|
if !IsValidObjectPrefix(filterRule.Value) {
|
||||||
return ErrFilterPrefixValueInvalid
|
return ErrFilterValueInvalid
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the new rule name to keep track of duplicates.
|
// Set the new rule name to keep track of duplicates.
|
||||||
|
@ -103,7 +103,7 @@ func IsValidObjectPrefix(object string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
// Reject unsupported characters in object name.
|
// Reject unsupported characters in object name.
|
||||||
if strings.ContainsAny(object, "`^*|\\\"") {
|
if strings.ContainsAny(object, "`^|\\\"") {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
@ -88,6 +88,7 @@ func TestIsValidObjectName(t *testing.T) {
|
|||||||
{"Cost Benefit Analysis (2009-2010).pptx", true},
|
{"Cost Benefit Analysis (2009-2010).pptx", true},
|
||||||
{"117Gn8rfHL2ACARPAhaFd0AGzic9pUbIA/5OCn5A", true},
|
{"117Gn8rfHL2ACARPAhaFd0AGzic9pUbIA/5OCn5A", true},
|
||||||
{"SHØRT", true},
|
{"SHØRT", true},
|
||||||
|
{"f*le", true},
|
||||||
{"There are far too many object names, and far too few bucket names!", true},
|
{"There are far too many object names, and far too few bucket names!", true},
|
||||||
// cases for which test should fail.
|
// cases for which test should fail.
|
||||||
// passing invalid object names.
|
// passing invalid object names.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user