@@ -539,18 +539,18 @@ var ONE_LEVEL_SLASH_DELIMITER = one_level_delimiter('/');
539539function list_objects ( req ) {
540540 dbg . log0 ( 'list_objects' , req . rpc_params ) ;
541541 var prefix = req . rpc_params . prefix || '' ;
542- var delimiter = req . rpc_params . delimiter ;
542+ let escaped_prefix = string_utils . escapeRegExp ( prefix ) ;
543+ var delimiter = req . rpc_params . delimiter || '' ;
543544 load_bucket ( req ) ;
544545 return P . fcall ( ( ) => {
545546 var info = _ . omit ( object_md_query ( req ) , 'key' ) ;
546547 var common_prefixes_query ;
547548
548- if ( ! _ . isUndefined ( delimiter ) ) {
549+ if ( delimiter ) {
549550 // find objects that match "prefix***" or "prefix***/"
550- var one_level = delimiter && delimiter !== '/' ?
551+ let one_level = delimiter !== '/' ?
551552 one_level_delimiter ( delimiter ) :
552553 ONE_LEVEL_SLASH_DELIMITER ;
553- var escaped_prefix = string_utils . escapeRegExp ( prefix ) ;
554554 info . key = new RegExp ( '^' + escaped_prefix + one_level ) ;
555555
556556 // we need another query to find common prefixes
@@ -577,6 +577,8 @@ function list_objects(req) {
577577 inline : 1
578578 }
579579 } ) ;
580+ } else if ( prefix ) {
581+ info . key = new RegExp ( '^' + escaped_prefix ) ;
580582 } else if ( req . rpc_params . key_query ) {
581583 info . key = new RegExp ( string_utils . escapeRegExp ( req . rpc_params . key_query ) , 'i' ) ;
582584 } else if ( req . rpc_params . key_regexp ) {
0 commit comments