Skip to content

Commit 390b449

Browse files
authored
fix: getBucketVersions result has no prefixes (#799)
1 parent 49aa122 commit 390b449

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

lib/common/object/getBucketVersions.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* eslint-disable no-use-before-define */
22
const proto = exports;
33
const isObject = require('../utils/isObject');
4+
const isArray = require('../utils/isArray');
45

56

67
proto.getBucketVersions = getBucketVersions;
@@ -47,7 +48,7 @@ async function getBucketVersions(query = {}, options = {}) {
4748
}));
4849
}
4950
if (deleteMarker) {
50-
if (!Array.isArray(deleteMarker)) {
51+
if (!isArray(deleteMarker)) {
5152
deleteMarker = [deleteMarker];
5253
}
5354
deleteMarker = deleteMarker.map(obj => ({
@@ -60,10 +61,18 @@ async function getBucketVersions(query = {}, options = {}) {
6061
}
6162
}));
6263
}
64+
let prefixes = result.data.CommonPrefixes || null;
65+
if (prefixes) {
66+
if (!isArray(prefixes)) {
67+
prefixes = [prefixes];
68+
}
69+
prefixes = prefixes.map(item => item.Prefix);
70+
}
6371
return {
6472
res: result.res,
6573
objects,
6674
deleteMarker,
75+
prefixes,
6776
nextMarker: result.data.NextMarker || null,
6877
NextVersionIdMarker: result.data.NextVersionIdMarker || null,
6978
isTruncated: result.data.IsTruncated === 'true'

test/node/multiversion.test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,18 @@ describe('test/multiversion.test.js', () => {
8989
assert(false, err.message);
9090
}
9191
});
92+
it('should getBucketVersions with delimiter', async () => {
93+
const names = ['getBucketVersions/delimiter1.js', 'getBucketVersions/delimiter2.js', 'getBucketVersions/delimiter3.js', 'others.js'];
94+
await Promise.all(names.map(_name => store.put(_name, __filename)));
95+
try {
96+
const result = await store.getBucketVersions({
97+
delimiter: '/'
98+
});
99+
assert(result.prefixes && result.prefixes.includes('getBucketVersions/'));
100+
} catch (err) {
101+
assert(false, err.message);
102+
}
103+
});
92104
});
93105

94106
describe('putBucketLifecycle() getBucketLifecycle()', () => {

0 commit comments

Comments
 (0)