Skip to content

Commit b274add

Browse files
authored
fix nested directory object display (#3415)
1 parent fd51c9d commit b274add

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

api/ws_objects.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,15 +139,23 @@ func (wsc *wsMinioClient) objectManager(session *models.Principal) {
139139

140140
continue
141141
}
142-
objItem := ObjectResponse{
143-
Name: lsObj.Key,
144-
Size: lsObj.Size,
145-
LastModified: lsObj.LastModified.Format(time.RFC3339),
146-
VersionID: lsObj.VersionID,
147-
IsLatest: lsObj.IsLatest,
148-
DeleteMarker: lsObj.IsDeleteMarker,
142+
// if the key is same as requested prefix it would be nested directory object, so skip
143+
// and show only objects under the prefix
144+
// E.g:
145+
// bucket/prefix1/prefix2/ -- this should be skipped from list item.
146+
// bucket/prefix1/prefix2/an-object
147+
// bucket/prefix1/prefix2/another-object
148+
if messageRequest.Prefix != lsObj.Key {
149+
objItem := ObjectResponse{
150+
Name: lsObj.Key,
151+
Size: lsObj.Size,
152+
LastModified: lsObj.LastModified.Format(time.RFC3339),
153+
VersionID: lsObj.VersionID,
154+
IsLatest: lsObj.IsLatest,
155+
DeleteMarker: lsObj.IsDeleteMarker,
156+
}
157+
buffer = append(buffer, objItem)
149158
}
150-
buffer = append(buffer, objItem)
151159

152160
if len(buffer) >= itemsPerBatch {
153161
sendWSResponse(WSResponse{

web-app/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsTable.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,20 +84,14 @@ const ListObjectsTable = () => {
8484
IAM_SCOPES.S3_ALL_LIST_BUCKET,
8585
]);
8686

87-
const filteredRecords = records.filter((b: BucketObjectItem) => {
87+
const plSelect = records.filter((b: BucketObjectItem) => {
8888
if (searchObjects === "") {
8989
return true;
9090
} else {
9191
const objectName = b.name.toLowerCase();
92-
if (objectName.indexOf(searchObjects.toLowerCase()) >= 0) {
93-
return true;
94-
} else {
95-
return false;
96-
}
92+
return objectName.indexOf(searchObjects.toLowerCase()) >= 0;
9793
}
9894
});
99-
100-
const plSelect = filteredRecords;
10195
const sortASC = plSelect.sort(sortListObjects(currentSortField));
10296

10397
let payload: BucketObjectItem[] = [];

0 commit comments

Comments
 (0)