# Send Cloudflare R2 to your agent
Use the source page and any available docs to guide the install because the item currently does not return a direct package file.
## Fast path
- Open the source page via Open source listing.
- If you can obtain the package, extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the source page and extracted files.
## Suggested prompts
### New install

```text
I tried to install a skill package from Yavira, but the item currently does not return a direct package file. Inspect the source page and any extracted docs, then tell me what you can confirm and any manual steps still required.
```
### Upgrade existing

```text
I tried to upgrade a skill package from Yavira, but the item currently does not return a direct package file. Compare the source page and any extracted docs with my current installation, then summarize what changed and what manual follow-up I still need.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cloudflare-r2",
    "name": "Cloudflare R2",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/xiaoyaner0201/cloudflare-r2",
    "canonicalUrl": "https://clawhub.ai/xiaoyaner0201/cloudflare-r2",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/cloudflare-r2",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cloudflare-r2",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "scripts/r2-upload.sh"
    ],
    "downloadMode": "manual_only",
    "sourceHealth": {
      "source": "tencent",
      "slug": "cloudflare-r2",
      "status": "source_issue",
      "reason": "not_found",
      "recommendedAction": "review_source",
      "checkedAt": "2026-05-01T21:32:51.001Z",
      "expiresAt": "2026-05-02T21:32:51.001Z",
      "httpStatus": 404,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cloudflare-r2",
      "contentType": "text/plain",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cloudflare-r2",
        "contentDisposition": null,
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "cloudflare-r2"
      },
      "scope": "item",
      "summary": "Known item issue.",
      "detail": "This item's current download entry is known to bounce back to a listing or homepage instead of returning a package file.",
      "primaryActionLabel": "Open source listing",
      "primaryActionHref": "https://clawhub.ai/xiaoyaner0201/cloudflare-r2"
    },
    "validation": {
      "installChecklist": [
        "Open the source listing and confirm there is a real package or setup artifact available.",
        "Review SKILL.md before asking your agent to continue.",
        "Treat this source as manual setup until the upstream download flow is fixed."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cloudflare-r2",
    "downloadUrl": "https://openagent3.xyz/downloads/cloudflare-r2",
    "agentUrl": "https://openagent3.xyz/skills/cloudflare-r2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cloudflare-r2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cloudflare-r2/agent.md"
  }
}
```
## Documentation

### Cloudflare R2

Upload and manage files in Cloudflare R2 storage buckets.

### Prerequisites

wrangler CLI: npm install -g wrangler
R2 config at ~/.config/cloudflare/r2.json

### Config Format

{
  "bucket": "your-bucket-name",
  "accountId": "your-account-id",
  "publicDomain": "pub-xxx.r2.dev",
  "apiToken": "your-api-token"
}

### Quick Upload

Single file:

scripts/r2-upload.sh <local-file> [remote-path]

Batch upload:

scripts/r2-upload.sh <directory> <remote-prefix>

### Manual Commands

# Set credentials
export CLOUDFLARE_ACCOUNT_ID="$(jq -r .accountId ~/.config/cloudflare/r2.json)"
export CLOUDFLARE_API_TOKEN="$(jq -r .apiToken ~/.config/cloudflare/r2.json)"
BUCKET=$(jq -r .bucket ~/.config/cloudflare/r2.json)

# Upload
wrangler r2 object put "$BUCKET/path/to/file.png" --file local.png --remote

# List objects
wrangler r2 object list $BUCKET --prefix "path/" --remote

# Delete
wrangler r2 object delete "$BUCKET/path/to/file.png" --remote

### Public URL

After upload, files are accessible at:

https://<publicDomain>/<remote-path>

Example: https://pub-xxx.r2.dev/article/image.png
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: xiaoyaner0201
- Version: 1.0.0
## Source health
- Status: source_issue
- Known item issue.
- This item's current download entry is known to bounce back to a listing or homepage instead of returning a package file.
- Health scope: item
- Reason: not_found
- Checked at: 2026-05-01T21:32:51.001Z
- Expires at: 2026-05-02T21:32:51.001Z
- Recommended action: Open source listing
## Links
- [Detail page](https://openagent3.xyz/skills/cloudflare-r2)
- [Send to Agent page](https://openagent3.xyz/skills/cloudflare-r2/agent)
- [JSON manifest](https://openagent3.xyz/skills/cloudflare-r2/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/cloudflare-r2/agent.md)
- [Download page](https://openagent3.xyz/downloads/cloudflare-r2)