🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Minio Share

by @sinute

Upload files to MinIO object storage and generate shareable links with Markdown formatting. Use when users ask to send files, share files, upload files, down...

Versionv0.1.3
Downloads845
TERMINAL
clawhub install minio-share

πŸ“– About This Skill


name: minio-share description: Upload files to MinIO object storage and generate shareable links with Markdown formatting. Use when users ask to send files, share files, upload files, download videos, or get a download link for files. Supports custom filenames from titles and provides formatted output with clickable links and media previews. Requires MINIO_API_URL, MINIO_CONSOLE_URL, MINIO_ACCESS_KEY, MINIO_SECRET_KEY, and MINIO_BUCKET environment variables.

MinIO Share

Upload files to MinIO and generate shareable links for users with Markdown formatting.

Requirements

Ensure these environment variables are set:

  • MINIO_API_URL - MinIO S3 API endpoint (e.g., https://minio-api.example.com)
  • MINIO_CONSOLE_URL - MinIO Web Console URL (e.g., https://minio.example.com)
  • MINIO_ACCESS_KEY - MinIO access key
  • MINIO_SECRET_KEY - MinIO secret key
  • MINIO_BUCKET - Default bucket name for uploads
  • Installation

    Install the minio Python package if not already available:

    pip install minio
    

    Usage

    Basic Upload

    Upload a file with Markdown output:

    python3 scripts/minio_upload.py /path/to/file.txt
    

    Use Title as Filename

    Upload with a custom title (sanitized for safe filenames):

    python3 scripts/minio_upload.py /path/to/video.mp4 --title "My Video Title"
    

    This will save the file as My_Video_Title.mp4 (special characters replaced with underscores).

    Custom Object Name

    Specify a custom name for the uploaded object:

    python3 scripts/minio_upload.py /path/to/file.txt --name custom-name.pdf
    

    Adjust Link Expiry

    Change the presigned URL expiry time (default: 7 days):

    python3 scripts/minio_upload.py /path/to/file.txt --expiry 30
    

    JSON Output

    Get structured output:

    python3 scripts/minio_upload.py /path/to/file.txt --json
    

    Plain Text Output

    Get just the URL:

    python3 scripts/minio_upload.py /path/to/file.txt
    

    Workflow

    When a user asks to send/share/upload a file or download a video:

    1. Check environment variables - Verify MINIO_* variables are set 2. Download the file (if it's a URL) to a temporary location 3. Upload the file using scripts/minio_upload.py: - For videos: Use --title "Video Title" to set a meaningful filename - For images: They will be displayed inline with Markdown - For videos: A video player will be included in the output 4. Copy the Markdown output to your response

    Filename Sanitization

    When using --title, the script automatically:

  • Replaces illegal characters (< > : " / \ | ? *) with underscores
  • Collapses multiple spaces/underscores
  • Trims to 100 characters max
  • Preserves Chinese characters, letters, numbers
  • Output Formats

    Markdown Output (Default)

    Provides rich formatting with:

  • File information (name, size, expiry)
  • Inline image preview (for image files)
  • Video player (for video files)
  • Clickable download link
  • Console preview link
  • Plain text URL for copying
  • Example Markdown Output

    πŸ“„ 文仢名: sample.mp4
    πŸ“¦ 倧小: 44.51 MB
    ⏱️ ι“ΎζŽ₯ζœ‰ζ•ˆζœŸ: 7 倩

    🌐 sample.mp4

    Error Handling

    Common issues:

  • Missing environment variables - Check all MINIO_* vars are set
  • Bucket doesn't exist - Ensure MINIO_BUCKET exists or create it first
  • File not found - Verify the file path is correct
  • Connection error - Check MINIO_API_URL is accessible
  • SSL errors - Use --insecure flag if needed (not recommended for production)
  • πŸ’‘ Examples

    Basic Upload

    Upload a file with Markdown output:

    python3 scripts/minio_upload.py /path/to/file.txt
    

    Use Title as Filename

    Upload with a custom title (sanitized for safe filenames):

    python3 scripts/minio_upload.py /path/to/video.mp4 --title "My Video Title"
    

    This will save the file as My_Video_Title.mp4 (special characters replaced with underscores).

    Custom Object Name

    Specify a custom name for the uploaded object:

    python3 scripts/minio_upload.py /path/to/file.txt --name custom-name.pdf
    

    Adjust Link Expiry

    Change the presigned URL expiry time (default: 7 days):

    python3 scripts/minio_upload.py /path/to/file.txt --expiry 30
    

    JSON Output

    Get structured output:

    python3 scripts/minio_upload.py /path/to/file.txt --json
    

    Plain Text Output

    Get just the URL:

    python3 scripts/minio_upload.py /path/to/file.txt