[
https://issues.apache.org/jira/browse/HDDS-10629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Devesh Kumar Singh updated HDDS-10629:
--------------------------------------
Description:
{noformat}
{noformat}
New API:
api/v1/namespace/listKeys?startPrefix=/volume1/obs-bucket/&start=5&count=105
h5. Default values of API parameters if not provided:
# recursive - true
# replicationType - RATIS
# creationTime - empty string and filter will not be applied, so list out keys
irrespective of age.
# keySize - 0 bytes, which means all keys greater than zero bytes will be
listed, effectively all.
# startPrefix - /
# count - 1000
h5. Behavior of API:
h5. For FSO bucket - list out *_count_* number of keys starting from
*_start_* value on the provided path.
This API will implement pagination support using *start* and *count params.*
h3. Get List of All Keys:
GET /api/v1/namespace/listKeys
API params:
# recursive
# replicationType
# creationTime in "MM-dd-yyyy HH:mm:ss" string format.
# startPrefix
# count
# keySize
*Input Request:*
api/v1/namespace/listKeys?path=/volume1/fso-bucket/dir1/&start=5&count=105
*Output Response:*
{noformat}
{
"status": "OK",
"path": "/volume1/fso-bucket/dir1",
"size": 62914560,
"sizeWithReplica": -1,
"subPathCount": 3,
"subPaths": [
{
"key": false,
"path": "/volume1/fso-bucket/dir1/dir2",
"size": 41943040,
"sizeWithReplica": -1,
"isKey": false,
"replicationType": null,
"creationTime": 0,
"modificationTime": 0
},
{
"key": true,
"path": "/volume1/fso-bucket/dir1/file1",
"size": 10485760,
"sizeWithReplica": -1,
"isKey": true,
"replicationType": null,
"creationTime": 0,
"modificationTime": 0
},
{
"key": true,
"path": "/volume1/fso-bucket/dir1/testfile",
"size": 10485760,
"sizeWithReplica": -1,
"isKey": true,
"replicationType": null,
"creationTime": 0,
"modificationTime": 0
}
],
"sizeDirectKey": 20971520
}{noformat}
was:
* API to retrieve list of keys in the ozone. Probably allow filtering of keys
by bucket, replication_type, age, size, limit and key prefix.
*
h5. This API will leverage the existing design and implementation of
NamespaceSummary data built by Recon. Existing NSSummary data is missing a few
data fields and will need to be extended while implementing the API.
h5. By default, API will provide a list of keys based on the path provided.
E.g. /volume/bucket/
h5. API will also accept parameters to filter the list of keys by path
(volume/bucket/dir/sub-dir), replication type, age, key size, start, count and
start prefix of key.
h5. Default values of API parameters if not provided:
# path - /
# recursive - false
# replication_type - RATIS
# age - null and filter will not be applied, so list out keys irrespective of
age.
# key_size - 0 bytes, which means all keys greater than zero bytes will be
listed, effectively all.
# start - 1 (inclusive)
# count - 1000
h5. Behavior of API:
h5. For FSO bucket - list out *_count_* number of keys starting from
*_start_* value number of keys recursively, i.e. on immediate path as well as
all files in all directories and sub-directories on the provided path.
This API will implement pagination support using *start* and *count params.*
h3. Get List of All Keys:
GET /api/v1/namespace/du
API params:
# path
# replication_type
# age in epoch ms
# start
# count
# key_size
Input Request:
api/v1/namespace/du?path=/volume1/fso-bucket/dir1/&start=5&count=105
Output Response
{noformat}
{ "status": "OK", "path": "/volume1/fso-bucket/dir1", "size": 62914560,
"sizeWithReplica": -1, "subPathCount": 3, "subPaths": [ { "path":
"/volume1/fso-bucket/dir1/dir2", "size": 41943040, "sizeWithReplica": -1,
"isKey": false, "subPathCount": 3, "subPaths": [ { "key": true, "path":
"/volume1/fso-bucket/dir1/dir2/file1", "size": 41943040, "sizeWithReplica": -1,
"isKey": true, "subPathCount": 0 }, { "key": true, "path":
"/volume1/fso-bucket/dir1/dir2/file2", "size": 41943040, "sizeWithReplica": -1,
"isKey": true, "subPathCount": 0 }, { "key": true, "path":
"/volume1/fso-bucket/dir1/dir2/file3", "size": 41943040, "sizeWithReplica": -1,
"isKey": true, "subPathCount": 0 } ], "replicaType": "RATIS" }, {
"key": true, "path": "/volume1/fso-bucket/dir1/file1", "size": 10485760,
"sizeWithReplica": -1, "isKey": true, "replicaType": "EC" }, { "key": true,
"path": "/volume1/fso-bucket/dir1/testfile", "size": 10485760,
"sizeWithReplica": -1, "isKey": true, "replicaType": "RATIS" } ],
"sizeDirectKey": 20971520 }{noformat}
> Recon - listKeys API for listing of FSO bucket keys with recursive support
> with filters
> ---------------------------------------------------------------------------------------
>
> Key: HDDS-10629
> URL: https://issues.apache.org/jira/browse/HDDS-10629
> Project: Apache Ozone
> Issue Type: Task
> Components: Ozone Recon
> Affects Versions: 1.5.0
> Reporter: Devesh Kumar Singh
> Assignee: Devesh Kumar Singh
> Priority: Major
>
> {noformat}
> {noformat}
> New API:
> api/v1/namespace/listKeys?startPrefix=/volume1/obs-bucket/&start=5&count=105
> h5. Default values of API parameters if not provided:
> # recursive - true
> # replicationType - RATIS
> # creationTime - empty string and filter will not be applied, so list out
> keys irrespective of age.
> # keySize - 0 bytes, which means all keys greater than zero bytes will be
> listed, effectively all.
> # startPrefix - /
> # count - 1000
>
> h5. Behavior of API:
> h5. For FSO bucket - list out *_count_* number of keys starting from
> *_start_* value on the provided path.
> This API will implement pagination support using *start* and *count params.*
> h3. Get List of All Keys:
> GET /api/v1/namespace/listKeys
> API params:
> # recursive
> # replicationType
> # creationTime in "MM-dd-yyyy HH:mm:ss" string format.
> # startPrefix
> # count
> # keySize
> *Input Request:*
>
> api/v1/namespace/listKeys?path=/volume1/fso-bucket/dir1/&start=5&count=105
> *Output Response:*
> {noformat}
> {
> "status": "OK",
> "path": "/volume1/fso-bucket/dir1",
> "size": 62914560,
> "sizeWithReplica": -1,
> "subPathCount": 3,
> "subPaths": [
> {
> "key": false,
> "path": "/volume1/fso-bucket/dir1/dir2",
> "size": 41943040,
> "sizeWithReplica": -1,
> "isKey": false,
> "replicationType": null,
> "creationTime": 0,
> "modificationTime": 0
> },
> {
> "key": true,
> "path": "/volume1/fso-bucket/dir1/file1",
> "size": 10485760,
> "sizeWithReplica": -1,
> "isKey": true,
> "replicationType": null,
> "creationTime": 0,
> "modificationTime": 0
> },
> {
> "key": true,
> "path": "/volume1/fso-bucket/dir1/testfile",
> "size": 10485760,
> "sizeWithReplica": -1,
> "isKey": true,
> "replicationType": null,
> "creationTime": 0,
> "modificationTime": 0
> }
> ],
> "sizeDirectKey": 20971520
> }{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]