Send Me My Files - R2 upload with short lived signed urls

Upload files to Cloudflare R2, AWS S3, or any S3-compatible storage and generate secure presigned download links with configurable expiration.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Send Me My Files - R2 upload with short lived signed urls" with this command: npx skills add julianengel/r2-upload

Send Me My Files - R2 Upload with Short Lived Signed URLs

Upload files to Cloudflare R2 or any S3-compatible storage and generate presigned download links.

Features

  • Upload files to R2/S3 buckets
  • Generate presigned download URLs (configurable expiration)
  • Support for any S3-compatible storage (R2, AWS S3, MinIO, etc.)
  • Multiple bucket configurations
  • Automatic content-type detection

Configuration

Create ~/.r2-upload.yml (or set R2_UPLOAD_CONFIG env var):

# Default bucket (used when no bucket specified)
default: my-bucket

# Bucket configurations
buckets:
  my-bucket:
    endpoint: https://abc123.r2.cloudflarestorage.com
    access_key_id: your_access_key
    secret_access_key: your_secret_key
    bucket_name: my-bucket
    public_url: https://files.example.com  # Optional: custom domain
    region: auto  # For R2, use "auto"
    
  # Additional buckets
  personal:
    endpoint: https://xyz789.r2.cloudflarestorage.com
    access_key_id: ...
    secret_access_key: ...
    bucket_name: personal-files
    region: auto

Cloudflare R2 Setup

  1. Go to Cloudflare Dashboard → R2
  2. Create a bucket
  3. Go to R2 API Tokens: https://dash.cloudflare.com/<ACCOUNT_ID>/r2/api-tokens
  4. Create a new API token
    • Important: Apply to specific bucket (select your bucket)
    • Permissions: Object Read & Write
  5. Copy the Access Key ID and Secret Access Key
  6. Use endpoint format: https://<account_id>.r2.cloudflarestorage.com
  7. Set region: auto

AWS S3 Setup

aws-bucket:
  endpoint: https://s3.us-east-1.amazonaws.com
  access_key_id: ...
  secret_access_key: ...
  bucket_name: my-aws-bucket
  region: us-east-1

Usage

Upload a file

r2-upload /path/to/file.pdf
# Returns: https://files.example.com/abc123/file.pdf?signature=...

Upload with custom path

r2-upload /path/to/file.pdf --key uploads/2026/file.pdf

Upload to specific bucket

r2-upload /path/to/file.pdf --bucket personal

Custom expiration (default: 5 minutes)

r2-upload /path/to/file.pdf --expires 24h
r2-upload /path/to/file.pdf --expires 1d
r2-upload /path/to/file.pdf --expires 300  # seconds

Public URL (no signature)

r2-upload /path/to/file.pdf --public

Tools

  • r2_upload - Upload file and get presigned URL
  • r2_list - List recent uploads
  • r2_delete - Delete a file

Environment Variables

  • R2_UPLOAD_CONFIG - Path to config file (default: ~/.r2-upload.yml)
  • R2_DEFAULT_BUCKET - Override default bucket
  • R2_DEFAULT_EXPIRES - Default expiration in seconds (default: 300 = 5 minutes)

Notes

  • Uploaded files are stored with their original filename unless --key is specified
  • Automatic UUID prefix added to prevent collisions (e.g., abc123/file.pdf)
  • Content-Type automatically detected from file extension
  • Presigned URLs expire after the configured duration

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ksdsl-skilll

Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Clau...

Registry SourceRecently Updated
3640f1zzyw
General

Openclaw Skill Intelligence Ingestion

Auto-analyze URLs/info for OpenClaw strategic value, classify, create Obsidian notes, update memory. Use when user shares a URL, article, tweet, or any exter...

Registry SourceRecently Updated
General

Truth first

Evidence-first verification for status, config, file contents, actions, connectivity, mounts, and model selection. Use before answering any such claim.

Registry SourceRecently Updated
General

http-retry

Automatically retries HTTP requests with exponential backoff, timeout control, and connection pooling to handle network errors and rate limits.

Registry SourceRecently Updated