원클릭으로
ovstorage-user-list-and-paginate
Use when enumerating objects under a prefix without buffering the whole result set into memory.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when enumerating objects under a prefix without buffering the whole result set into memory.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Deploy and develop against NVIDIA Omniverse Storage APIs on any Kubernetes cluster (MicroK8s, EKS, AKS, GKE, bare metal). Two storage adapters: (1) Example Storage Adapter — Python filesystem reference implementation + Discovery for learning and custom adapter development; (2) S3/Azure Production Storage Adapter — NVIDIA pre-built S3/Azure adapter + Discovery as minimum, expandable with Event Aggregation, Event Consumer, RabbitMQ, Envoy Auth Extension, Storage Navigator, and Contour ingress. Can deploy on the developer's behalf (generating scripts + .env) or guide manual deployment. Custom adapter development covers three APIs: Storage, Notifications, and Permissions. Use when a developer asks about deploying, configuring, validating, troubleshooting, or building any component of the Omniverse Storage APIs stack.
Use when adding or reviewing an authz plugin for ovstorage-broker or ovstorage-rest - covers the AuthzPlugin trait, the 21 operations, the policy-epoch model, and the cdylib cancellation contract.
Use when adding or reviewing a storage backend plugin for ovstorage.
Use when Rust changes affect ovstorage C or C++ headers and checked-in generated headers must be refreshed.
Use when starting an ovstorage-broker locally for development or integration testing - covers a minimal TOML, the cdylib plugin path, and how to hit the listener with broker-client or curl.
Use when checking the Storage API wire contract that ovstorage-plugin-services-client depends on.
| name | ovstorage-user-list-and-paginate |
| description | Use when enumerating objects under a prefix without buffering the whole result set into memory. |
| license | CC-BY-4.0 |
| version | 0.1.0 |
| author | NVIDIA Omniverse |
| tags | ["ovstorage","listing","pagination"] |
| tools | ["Read"] |
| compatibility | Requires ovstorage MCP tools or equivalent library calls and an already-configured backend route. |
Goal: Enumerate the objects under a prefix without buffering the whole list into memory.
When to use this: Anytime you need to walk objects — copying a tree, building an index, finding the latest, summarizing a directory.
ovstorage_list returns one page. You drive pagination by passing
next_page_token from the prior response back as page_token on the
next call. Stop when next_page_token is absent (or null).
{
"tool": "ovstorage_list",
"arguments": {
"prefix": "s3://my-bucket/logs/",
"recursive": false,
"max_results": 200
}
}
To traverse all children at any depth, pass recursive: true.
{
"v": "0.1",
"ok": true,
"operation": "ovstorage_list",
"result": {
"items": [
{"kind": "Object", "address": "s3://my-bucket/logs/2026-05-14.json", "size": 4231, "etag": "..."},
{"kind": "Directory", "address": "s3://my-bucket/logs/archive/", "size": null, "etag": null}
],
"next_page_token": "AAEY...zM="
}
}
To get the next page, call again with the same arguments plus
page_token: "AAEY...zM=". When the response has no
next_page_token, you've reached the end.
In Python (over MCP):
items = []
page_token = None
while True:
res = call_tool("ovstorage_list", {
"prefix": "s3://my-bucket/logs/",
"recursive": True,
"max_results": 1000,
"page_token": page_token,
})
items.extend(res["result"]["items"])
page_token = res["result"].get("next_page_token")
if page_token is None:
break
Always set max_results even if it's a generous number (e.g.,
1000). Backends have their own upper bounds, but a missing
max_results makes performance characteristics hard to reason about.
next_page_token. Doing so silently truncates the
list to the first page — usually the worst kind of bug because the
partial result looks valid.error.code | Likely cause | What to do |
|---|---|---|
NotFound | Prefix doesn't exist | Check that the prefix exists with ovstorage_stat |
PermissionDenied | Credentials can't list this prefix | See auth_state_kind in ovstorage_doctor |
Unsupported | Backend doesn't support recursive listing | Drop recursive: true, walk manually one level at a time |
Transient | Backend hiccup | Retry the same page with the same page_token — pagination is idempotent |
delete-directory --dry-run builds on list internally