ワンクリックで
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