Skip to content

Commit d2ba040

Browse files
committed
Merge pull request #1070 from noobaa/guy_fix_list_objects
fix list objects with delimiter vs prefix to also honor just prefix (and not kill the entire bucket)
2 parents e7a22f3 + 03525f3 commit d2ba040

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/server/object_server.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -539,18 +539,18 @@ var ONE_LEVEL_SLASH_DELIMITER = one_level_delimiter('/');
539539
function 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

Comments
 (0)