ワンクリックで
ovstorage-user-delete-safely
Use when removing objects safely, especially recursive directories or targets that need a dry-run first.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when removing objects safely, especially recursive directories or targets that need a dry-run first.
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-delete-safely |
| description | Use when removing objects safely, especially recursive directories or targets that need a dry-run first. |
| license | CC-BY-4.0 |
| version | 0.1.0 |
| author | NVIDIA Omniverse |
| tags | ["ovstorage","delete","safety"] |
| tools | ["Read"] |
| compatibility | Requires ovstorage MCP tools or equivalent library calls and an already-configured backend route. |
Goal: Remove objects without losing data you didn't mean to lose.
When to use this: Cleaning up after a job, removing stale state, or implementing user-initiated delete. Especially when the target is a directory or you're not 100% sure what's underneath it.
Removes one object. Low risk — there's exactly one thing to delete.
{
"tool": "ovstorage_delete",
"arguments": {
"address": "s3://my-bucket/temp/scratch.bin"
}
}
Successful response:
{"v": "0.1", "ok": true, "operation": "ovstorage_delete", "result": {"ok": true}}
Recursive directory deletes are dangerous. The tool requires an
explicit dry_run parameter. Always run with dry_run: true first
and review the plan.
{
"tool": "ovstorage_delete_directory",
"arguments": {
"address": "s3://my-bucket/old-results/",
"recursive": true,
"dry_run": true
}
}
Response shows what would be deleted:
{
"v": "0.1",
"ok": true,
"operation": "ovstorage_delete_directory",
"result": {
"dry_run": true,
"would_delete_count": 47,
"would_delete_paths": [
"s3://my-bucket/old-results/run-001/output.json",
"s3://my-bucket/old-results/run-001/log.txt",
"..."
]
}
}
Read the count. Read enough of would_delete_paths to confirm the
shape matches your intent. If anything surprises you, stop.
If the plan is right, repeat the call with dry_run: false:
{
"tool": "ovstorage_delete_directory",
"arguments": {
"address": "s3://my-bucket/old-results/",
"recursive": true,
"dry_run": false
}
}
Response:
{
"v": "0.1",
"ok": true,
"operation": "ovstorage_delete_directory",
"result": {"dry_run": false, "deleted": true}
}
If you just want to remove an empty directory marker:
{
"tool": "ovstorage_delete_directory",
"arguments": {
"address": "s3://my-bucket/empty/",
"recursive": false,
"dry_run": false
}
}
This fails with DirectoryNotEmpty if anything's underneath.
dry_run: false to "skip the confirmation." That's exactly what it does, and that's exactly the bug.error.code | Likely cause | What to do |
|---|---|---|
NotFound | Address doesn't exist | Already gone — your work here is done |
DirectoryNotEmpty | Non-recursive delete on a non-empty directory | Either drop the contents first, or use recursive: true (with dry-run!) |
PermissionDenied | Credentials can't delete | Check ovstorage_doctor |
Unsupported | Backend doesn't support delete | Rare — check ovstorage_capabilities for that prefix |
ResourceExhausted | Dry-run found >100k entries | Target a narrower prefix and delete in batches |