Add prominent Path Configuration section that explicitly states files must upload to main path when no path is specified. Includes constraints and examples to prevent path assumptions. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
69 lines
2.5 KiB
Markdown
69 lines
2.5 KiB
Markdown
---
|
|
name: minio-upload
|
|
description: Upload files to MinIO obsidian bucket with configurable path support. Use when the user asks to upload files to MinIO, transfer to obsidian bucket specifically, upload markdown or other files to cloud storage, or specify custom subpaths within obsidian bucket
|
|
---
|
|
|
|
# MinIO Upload
|
|
|
|
Upload files to the MinIO obsidian bucket with flexible path configuration.
|
|
|
|
## Quick Start
|
|
|
|
Upload a file to the default `main` path:
|
|
```bash
|
|
.claude/skills/minio-upload/scripts/upload_to_obsidian.sh path/to/file.md
|
|
```
|
|
|
|
Upload to a custom subpath:
|
|
```bash
|
|
.claude/skills/minio-upload/scripts/upload_to_obsidian.sh path/to/file.md "notes/2024"
|
|
```
|
|
|
|
## Path Configuration
|
|
|
|
**CRITICAL RULE**: When no path is explicitly specified by the user, files MUST be uploaded to the `main` path only. Do NOT assume or invent custom subpaths.
|
|
|
|
### Path Behavior
|
|
|
|
- **No path specified**: Upload to `minio/obsidian/main/` (DEFAULT - use this unless user explicitly requests otherwise)
|
|
- **Custom path specified**: Use the exact path provided by the user (e.g., `notes/2024`, `archive/old projects`)
|
|
- **Nested paths**: Multi-level paths are supported when explicitly requested (e.g., `notes/personal/journal`)
|
|
|
|
### Important Constraints
|
|
|
|
1. **Never assume paths**: If the user doesn't specify a path, always use `main`
|
|
2. **User intent only**: Only use custom subpaths when the user explicitly provides them
|
|
3. **Path validation**: The script automatically normalizes paths and appends the filename
|
|
|
|
### Examples
|
|
|
|
- User says "upload file.md" → Upload to `main/`
|
|
- User says "upload to notes" → Upload to `notes/`
|
|
- User says "upload to archive/old projects" → Upload to `archive/old projects/`
|
|
|
|
## Workflow
|
|
|
|
1. **Verify file exists** - Check that the source file is accessible
|
|
2. **Determine target path** - Use specified subpath 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 path, and executes the mc copy command.
|
|
|
|
**Key features:**
|
|
- Default to `main` path when no subpath specified
|
|
- Support nested subpaths with proper path normalization
|
|
- Clear error messages for invalid inputs
|
|
- Success confirmation with source and target paths
|