File tree Expand file tree Collapse file tree 2 files changed +20
-6
lines changed Expand file tree Collapse file tree 2 files changed +20
-6
lines changed Original file line number Diff line number Diff line change @@ -964,6 +964,19 @@ mod backend_tests {
964
964
Ok ( ( ) )
965
965
}
966
966
967
+ fn test_too_long_filename ( storage : & Storage ) -> Result < ( ) > {
968
+ // minio returns ErrKeyTooLongError when the key is over 1024 bytes long.
969
+ // When testing, minio just gave me `XMinioInvalidObjectName`, so I'll check that too.
970
+ let long_filename = "ATCG" . repeat ( 512 ) ;
971
+
972
+ assert ! ( storage
973
+ . get( & long_filename, 42 )
974
+ . unwrap_err( )
975
+ . is:: <PathNotFoundError >( ) ) ;
976
+
977
+ Ok ( ( ) )
978
+ }
979
+
967
980
fn test_get_too_big ( storage : & Storage ) -> Result < ( ) > {
968
981
const MAX_SIZE : usize = 1024 ;
969
982
@@ -1307,6 +1320,7 @@ mod backend_tests {
1307
1320
test_get_object,
1308
1321
test_get_range,
1309
1322
test_get_too_big,
1323
+ test_too_long_filename,
1310
1324
test_delete_prefix,
1311
1325
test_delete_prefix_without_matches,
1312
1326
test_delete_percent,
Original file line number Diff line number Diff line change @@ -25,12 +25,12 @@ fn err_is_not_found<E>(err: &SdkError<E>) -> bool
25
25
where
26
26
E : ProvideErrorMetadata ,
27
27
{
28
- match err {
29
- SdkError :: ServiceError ( err ) => {
30
- err . raw ( ) . status ( ) . as_u16 ( ) == http :: StatusCode :: NOT_FOUND . as_u16 ( )
31
- }
32
- e if e . code ( ) == Some ( "KeyTooLongError" ) => true ,
33
- _ => false ,
28
+ if err. code ( ) == Some ( "KeyTooLongError" ) || err . code ( ) == Some ( "XMinioInvalidObjectName" ) {
29
+ true
30
+ } else if let SdkError :: ServiceError ( err ) = err {
31
+ err . raw ( ) . status ( ) . as_u16 ( ) == http :: StatusCode :: NOT_FOUND . as_u16 ( )
32
+ } else {
33
+ false
34
34
}
35
35
}
36
36
You can’t perform that action at this time.
0 commit comments