원클릭으로
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 |