Automatically upload files to storage services when pasting or dragging files into Obsidian.
- Multi-Cloud Support: Amazon S3, Cloudflare R2, Alibaba Cloud OSS, Tencent Cloud COS
- Auto Upload: Automatically upload files on paste and drag-drop
- Secure Storage: Encrypted storage for sensitive credentials
- Progress Tracking: Real-time upload progress indicators
- Sync Delete: Optionally delete cloud files when removing local references
- File Type Filtering: Configure which file types to auto-upload
Compatible with Amazon S3 and S3-compatible services (MinIO, DigitalOcean Spaces, etc.)
Required Configuration:
- Access Key ID
- Secret Access Key
- Bucket Name
- Region
- Endpoint (optional)
- Public URL (optional)
Cloudflare's S3-compatible object storage
Required Configuration:
- Access Key ID
- Secret Access Key
- Bucket Name
- Account ID
- Public URL (optional)
Alibaba Cloud Object Storage Service
Required Configuration:
- Access Key ID
- Secret Access Key
- Bucket Name
- Region
- Endpoint (optional)
- Public URL (optional)
Tencent Cloud Object Storage
Required Configuration:
- Secret ID
- Secret Key
- Bucket Name
- Region
- Public URL (optional)
- Open Settings → Community Plugins
- Disable Safe Mode
- Browse and search for "File Auto Upload"
- Install and enable the plugin
- Download the latest release from GitHub Releases
- Extract files to
{vault}/.obsidian/plugins/file-auto-upload/ - Reload Obsidian
- Enable the plugin in Settings → Community Plugins
- Open plugin settings
- Select your storage service type
- Enter your service credentials
- Click "Test Connection" to verify configuration
- Enable auto-upload features as needed
- Clipboard Auto Upload: Upload files when pasting from clipboard
- Drag & Drop Auto Upload: Upload files when dragging into editor
- File Types: Comma-separated list of file extensions to auto-upload (e.g.,
jpg,png,pdf)
When auto-upload is enabled:
- Paste: Copy and paste images or files - they'll upload automatically
- Drag & Drop: Drag files into the editor - they'll upload automatically
- Screenshots: Paste screenshots directly - they'll upload automatically
The plugin automatically replaces local file paths with cloud URLs after successful upload.
- Test Connection: Verify your storage configuration in settings
- Delete Cloud Files: Right-click on uploaded file links to delete from cloud storage
- All credentials are encrypted using Obsidian's secure storage
- No data is collected or transmitted to third parties
- Use API keys with minimal required permissions
- Node.js 18+
- pnpm 8+
# Install dependencies
pnpm install
# Development mode (watch)
pnpm run dev
# Build production
pnpm run build
# Lint code
pnpm run lint
# Format code
pnpm run formatsrc/
├── components/ # UI components and settings
├── handler/ # Event handlers (paste, drop, delete)
├── manager/ # Service managers (config, upload, events)
├── uploader/ # Storage provider implementations
│ └── providers/ # S3, R2, OSS, COS uploaders
├── utils/ # Utilities (logger, encryption)
├── i18n/ # Internationalization
└── main.ts # Plugin entry point
- Verify credentials in settings
- Click "Test Connection" to check configuration
- Check bucket permissions and CORS settings
- Review console logs (Ctrl+Shift+I)
- Ensure auto-upload is enabled in settings
- Check file type is in allowed list
- Verify storage service is configured
- Check for error notifications
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Run linting and formatting
- Submit a pull request
MIT License - see LICENSE file for details
- Report bugs: GitHub Issues
- Feature requests: GitHub Discussions
Note: Ensure you understand your cloud storage provider's pricing and usage limits before use.