SkillHub

us3

v1.0.0

Upload files to UCloud US3 object storage and generate public URLs

Sourced from ClawHub, Authored by qianjunye

Installation

Please help me install the skill `us3` from SkillHub official store. npx skills add qianjunye/us3

UCloud US3 Storage Skill

Upload files to UCloud US3 object storage and generate public URLs.

When to use this skill

Use this skill when: - The user wants to upload files to cloud storage - You need to share files via public URLs - You need to store images, videos, or documents in the cloud - You need to generate shareable links for files

Prerequisites

  • UCloud US3 account and bucket from https://www.ucloud.cn/
  • Set environment variables:
  • US3_PUBLIC_KEY - UCloud Public Key (Token)
  • US3_PRIVATE_KEY - UCloud Private Key
  • US3_BUCKET - Bucket domain (e.g., xqm.cn-sh2.ufileos.com)
  • US3_ENDPOINT - API endpoint (e.g., https://api.ucloud.cn/)

Usage

Upload files and get public URLs:

# Upload a file
node /root/clawdbot/skills/us3/upload.mjs --file "/path/to/file.jpg"

# Upload with custom key name
node /root/clawdbot/skills/us3/upload.mjs --file "/path/to/file.jpg" --key "custom/path/file.jpg"

# Upload and get URL only
node /root/clawdbot/skills/us3/upload.mjs --file "/path/to/file.jpg" --url-only

Parameters

  • --file (required): Local file path to upload
  • --key (optional): Custom object key (path) in bucket. If not provided, uses filename
  • --url-only (optional): Output only the public URL (default: false)

Examples

# Upload an image
node /root/clawdbot/skills/us3/upload.mjs --file "/tmp/screenshot.png"

# Upload to specific path
node /root/clawdbot/skills/us3/upload.mjs --file "/tmp/video.mp4" --key "videos/2026/video.mp4"

# Upload Feishu downloaded image
node /root/clawdbot/skills/us3/upload.mjs --file "/tmp/feishu_image_123.png" --key "feishu/$(date +%Y%m%d_%H%M%S).png"

# Get just the URL
node /root/clawdbot/skills/us3/upload.mjs --file "/tmp/report.pdf" --url-only

Output

Returns JSON with upload results:

{
  "success": true,
  "url": "https://xqm.cn-sh2.ufileos.com/path/to/file.jpg",
  "key": "path/to/file.jpg",
  "bucket": "xqm.cn-sh2.ufileos.com",
  "size": 123456
}

With --url-only flag, outputs only the URL string:

https://xqm.cn-sh2.ufileos.com/path/to/file.jpg

Supported File Types

  • Images: JPG, PNG, GIF, WEBP, BMP, SVG
  • Videos: MP4, MOV, AVI, MKV, WEBM
  • Documents: PDF, DOC, DOCX, TXT, MD
  • Audio: MP3, WAV, OGG, M4A
  • Archives: ZIP, TAR, GZ
  • Any other file type

Common Use Cases

Upload Feishu Images

When user sends an image via Feishu and wants to share: 1. Image is auto-downloaded to /tmp/feishu_*.png 2. Upload to US3: node upload.mjs --file "/tmp/feishu_image_123.png" 3. Share the returned public URL

Upload Processed Files

After converting/processing files:

# Convert and upload
convert input.jpg -resize 800x600 /tmp/resized.jpg
node /root/clawdbot/skills/us3/upload.mjs --file "/tmp/resized.jpg" --key "images/resized_$(date +%s).jpg"

Batch Upload

Upload multiple files:

for file in /tmp/*.png; do
  node /root/clawdbot/skills/us3/upload.mjs --file "$file" --key "batch/$(basename $file)"
done

Notes

  • Files are uploaded to a public bucket - URLs are directly accessible
  • File size limit: Check your UCloud US3 plan limits
  • The bucket domain format: bucket-name.region.ufileos.com
  • Use meaningful key names for better organization
  • Automatic content-type detection based on file extension

Error Handling

Common errors and solutions: - missing_credentials: Set all required environment variables - file_not_found: Check file path exists - upload_failed: Check network connection and credentials - invalid_bucket: Verify bucket name and region

Integration Tips

Works well with: - feishu-media: Upload images from Feishu messages - ffmpeg: Upload processed videos - baidu-ocr: Upload images before/after OCR processing