一键导入
ovstorage-user-read-bytes
Use when loading one bounded object into memory to parse, inspect, hash, or hand its bytes to another tool.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when loading one bounded object into memory to parse, inspect, hash, or hand its bytes to another tool.
用 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-read-bytes |
| description | Use when loading one bounded object into memory to parse, inspect, hash, or hand its bytes to another tool. |
| license | CC-BY-4.0 |
| version | 0.1.0 |
| author | NVIDIA Omniverse |
| tags | ["ovstorage","read","bytes"] |
| tools | ["Read"] |
| compatibility | Requires ovstorage MCP tools or equivalent library calls and an already-configured backend route. |
Goal: Load an object's contents into memory with a bounded size.
When to use this: You need the bytes of one object — to parse it, inspect it, hash it, or hand it to another tool. The object fits in memory.
For larger objects (multi-GB, or unknown size), use ovstorage-user-materialize to get a stable on-disk path instead — that lets you stream / mmap without buffering everything.
max_bytes is required. Pick a cap large enough for the work but
small enough to fail fast on accidental giants.
{
"tool": "ovstorage_read",
"arguments": {
"address": "s3://my-bucket/data/report.json",
"max_bytes": 1048576
}
}
{
"v": "0.1",
"ok": true,
"operation": "ovstorage_read",
"result": {
"data_base64": "ewogICJyZW...",
"info": {
"address": "s3://my-bucket/data/report.json",
"size": 4231,
"etag": "\"abc123\"",
"version": null,
"mtime_unix_nanos": 1718000000000000000
}
}
}
data_base64 is the object's bytes, base64-encoded (MCP results
are JSON-shaped; binary data must be encoded). Decode in whatever
language you're using.
if_match — precondition. Pass the bare etag string (e.g. "abc123") from a prior stat to atomically verify the object hasn't changed. Mismatch surfaces as ObjectModified.range_start + range_end — byte-range read (both inclusive). Useful when you only need a slice (e.g., the header of a large file).error.code | Likely cause | What to do |
|---|---|---|
NotFound | Address doesn't exist | Confirm spelling; check ovstorage_list of the parent prefix |
ResourceExhausted | Object is larger than max_bytes | Either raise max_bytes, narrow with range_start/range_end, or switch to ovstorage-user-materialize |
PermissionDenied | Credentials can't read this object | Check ovstorage_doctor — connection's auth_state_kind |
NoRoute | No backend configured for this address scheme/prefix | See ovstorage-user-getting-started |
ObjectModified | if_match didn't match | Re-stat to get current identity, then decide whether to retry |
Transient | Backend hiccup | retryable: true — retry once or twice with backoff |