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

76 lines
3.0 KiB
Markdown

---
name: minio-upload
description: 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:
```bash
.claude/skills/minio-upload/scripts/upload_to_obsidian.sh path/to/file.md
```
Upload to a specific vault:
```bash
.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