Lskypro Upload V2
approvedby 3kk0
Auto upload local images to LskyPro.
LskyPro Upload V2
An automatic image uploader plugin for Obsidian
English | 简体中文
A lightweight and efficient image uploader plugin for Obsidian,
supporting LskyPro V1 / V2 APIs, multiple upload methods, and batch operations.
🚀 Features
- Auto Upload: Automatically uploads and replaces pasted images with URLs
- Multi-Version Support: Fully compatible with LskyPro V1 / V2 APIs
- Multiple Upload Methods: Supports clipboard, drag-and-drop, right-click menu, and command palette
- Batch Upload: Upload all local images in the current note with one click
- Concurrent Upload: Supports low/medium/high concurrency modes for faster batch uploads
- Smart Processing: Optional network image handling and automatic source file deletion
- Multi-Language Support: Built-in Chinese and English language switching
📋 Quick Start
Prerequisites
Before using this plugin, make sure you have:
- A running and accessible LskyPro image hosting service
- Enabled API access in your LskyPro configuration
- A valid Access Token (found under User Center → Personal Token)
- For V2 version, a valid Storage ID is required (administrators can check through admin panel, users can obtain via API)
Plugin Setup
- Open Obsidian → Settings → Community Plugins → LskyPro Upload V2
- Fill in the basic configuration fields:
| Field | Description |
|---|---|
| LskyPro URL | Example: https://img.example.com |
| Access Token | Your LskyPro access token |
| Version | Select V1 or V2 |
| Storage ID | Optional for V1; Required for V2 (see API Docs) |
- Advanced options configuration:
| Field | Description |
|---|---|
| Clipboard Auto Upload | Automatically upload pasted images (desktop only) |
| Attachment Auto Upload | Automatically process attachment images (mobile only) |
| Process Network Images | Whether to process pasted network image links |
| Network Blacklist Domains | Specify domains that should not be processed |
| Fix Paths | Automatically fix file path issues |
| Apply Image Processing | Whether to apply image processing rules |
| Delete Source Files After Upload | Whether to delete local files after successful upload |
| Concurrency Mode | Number of concurrent uploads (low/medium/high) |
| Language | Plugin interface language (auto/Chinese/English) |
💡 Usage Guide
Clipboard Auto Upload
When you paste an image into the editor, the plugin will:
- Automatically upload it to your LskyPro server;
- Replace it with a Markdown image link, for example:

Mobile Attachment Auto Upload
When you click the attachment button and select an image file, the plugin will:
- Automatically upload it to your LskyPro server;
- Replace it with a Markdown image link:

Note: This feature hasn't been thoroughly tested on mobile devices and may have compatibility issues. Further testing and optimization will be conducted after the plugin is published.
Right-Click Upload
Right-click on a local image (in the file explorer or editor),
then choose “Upload to LskyPro” — the plugin will upload it instantly and return the image URL.
Perfect for manually uploading individual attachments.
Drag-and-Drop Upload
Simply drag local image files into the editor.
The plugin will detect the file type and automatically replace it with an image URL in Markdown syntax.
Batch Upload (All Images in Current File)
- Open the Command Palette (
Ctrl + PorCmd + P) - Search for and run
Upload all images - The plugin scans and uploads all local images in the current note
You can configure concurrency mode (low/medium/high) in settings to significantly improve batch upload speed.
Batch Download
Reverse the process — download all remote images to local storage:
Command: Download all images.
Enable Debug Mode
Need to set the developer mode output mode to Detailed first, then you can enable debug info.
🔍 LskyPro Version Notes
This plugin is based on NekoTarou/lskypro-auto-upload,
with LskyPro V2 API support and automatic response parsing.
Reference: Lsky Pro API Documentation.
| Field | LskyPro V1 | LskyPro V2 |
|---|---|---|
| Storage Config | Optional (if only one strategy exists) | Required (must specify correct storage ID) |
| Token Auth | User Token | User Token |
| API Endpoint | /api/v1/upload | /api/v2/upload |
⚠️ Notes
- After updating, restart Obsidian to ensure new features take effect
- Upload failures are usually caused by network instability or expired tokens
- Keep your token secure — never share it publicly
- After switching between LskyPro versions, re-enter the storage configuration
- Upload paths are managed by your LskyPro server, not modified by the plugin
🧭 Development Roadmap & Changelog
Implemented Features
| Feature | Status | Description |
|---|---|---|
| Concurrent Upload | ✅ Done | Supports low/medium/high concurrency modes for faster batch uploads |
| Auto Delete Local Attachments | ✅ Done | Automatically remove local files after successful upload to keep library clean |
| LskyPro V1 / V2 Auto Detection | ✅ Done | Automatically detect and adapt to different API response formats |
| Right-Click Upload | ✅ Done | Upload directly from Obsidian's context menu |
| Response Result Optimization | ✅ Done | Unified handling of status/message/data parsing logic |
| Multi-Language Support | ✅ Done | Built-in Chinese and English language switching |
| Network Image Processing | ✅ Done | Option to process pasted network image links |
Planned Features
- Image compression options
- Enhanced upload status notifications
🤝 Acknowledgements
Special thanks to the following projects for inspiration and reference:
👨💻 Project Information
- Author: 3kk0
- Blog: https://wiki.stxwer.top
- Project: GitHub - Aceak/LskyPro-Upload-V2
📜 License
This project is licensed under the MIT License.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.