us3
v1.0.0Upload files to UCloud US3 object storage and generate public URLs
Installation
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 KeyUS3_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