Files
claudeskill/skills/minio-upload/SKILL.md
Misaka Company cbe3cfccba Clarify minio-upload skill as Obsidian vault upload tool
Update documentation to reflect that the obsidian bucket serves as sync directory for Obsidian note-taking app. Replace generic "path" terminology with "vault" concept, explaining that each top-level directory is a separate Obsidian vault. Add vault structure explanation and update examples to show vault-specific uploads.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-28 12:57:57 +08:00

3.0 KiB

name, description
name description
minio-upload Upload files to Obsidian vaults via MinIO obsidian bucket. Use when user asks to upload files to Obsidian, transfer notes to vaults, sync markdown files to Obsidian, or specify a particular vault destination. The obsidian bucket serves as the sync directory for Obsidian note-taking app.

MinIO Upload

Upload files to Obsidian vaults through the MinIO obsidian bucket. This bucket serves as the synchronization directory for the Obsidian note-taking application, where each top-level directory represents a separate vault.

Quick Start

Upload a file to the default main vault:

.claude/skills/minio-upload/scripts/upload_to_obsidian.sh path/to/file.md

Upload to a specific vault:

.claude/skills/minio-upload/scripts/upload_to_obsidian.sh path/to/file.md "journal"

Vault Configuration

CRITICAL RULE: When no vault is explicitly specified by the user, files MUST be uploaded to the main vault only. Do NOT assume or invent other vault names.

Understanding Vault Structure

The MinIO obsidian bucket contains Obsidian vaults as top-level directories:

  • Bucket root: minio/obsidian/
  • Vaults: Each top-level directory is a separate Obsidian vault (e.g., main/, journal/, work/)
  • Files uploaded to: minio/obsidian/{vault-name}/{filename}

Vault Selection Behavior

  • No vault specified: Upload to main vault (DEFAULT - use this unless user explicitly requests otherwise)
  • Specific vault specified: Use the exact vault name provided by the user (e.g., journal, work-notes, personal)
  • Nested directories: If a vault name contains slashes, it will be normalized (e.g., notes/journal becomes notes/journal/)

Important Constraints

  1. Never assume vaults: If the user doesn't specify a vault, always use main
  2. User intent only: Only use non-default vaults when the user explicitly names them
  3. Vault validation: The script automatically normalizes paths and appends the filename

Examples

  • User says "upload file.md" → Upload to main vault
  • User says "upload to my journal vault" → Upload to journal vault
  • User says "upload to work-notes" → Upload to work-notes vault

Workflow

  1. Verify file exists - Check that the source file is accessible
  2. Determine target vault - Use specified vault name or default to main
  3. Upload with mc - Execute mc cp command to transfer file
  4. Confirm success - Verify upload completed and report target location

Error Handling

The script will:

  • Exit with error if file doesn't exist
  • Exit with error if no file argument provided
  • Propagate any mc command failures

Resources

scripts/upload_to_obsidian.sh

Bash script that handles the upload process. Validates inputs, constructs the target vault path, and executes the mc copy command.

Key features:

  • Default to main vault when no vault name specified
  • Support vault names with proper path normalization
  • Clear error messages for invalid inputs
  • Success confirmation with source and target paths