A native macOS client for Cloudflare R2 object storage.
Built with SwiftUI. Designed for developers and content creators.
Features • Screenshots • Building • 中文文档
Finder-style table view with multi-account sidebar, column sorting, and breadcrumb navigation.
- Multiple Cloudflare R2 accounts with quick switching
- Secure credential storage via macOS Keychain
- Real-time connection status monitoring
- Browse and manage all accessible R2 buckets
- Custom public domain configuration (multiple domains supported)
- CDN cache purge via Cloudflare API
- Upload — Drag & drop, folder upload, batch upload with conflict detection
- Download — Single file, batch, and folder download
- Delete — Single & batch deletion with optimized batch API
- Rename — Files and folders with real-time validation
- Move — Right-click to move between directories, batch support
- Preview — Image, video, audio, PDF, and text formats
- Copy Link — One-click copy; multi-domain submenu when configured
- Finder-style forward/backward navigation history
- Multi-select: Cmd+Click to add, Shift+Click for range
- Search, type filter, and column sorting
- Upload / download / move queues with cancel & retry
- Automatic task deduplication
- Upload conflict resolution (Replace / Keep Both / Skip)
- CDN cache auto-purge on overwrite upload
- Native macOS design (SwiftUI)
- Finder-style Table View and Icon View
- Breadcrumb navigation
- Dark mode support
- English and Simplified Chinese localization
| Requirement | Minimum |
|---|---|
| macOS | 15.4+ |
| Architecture | Intel & Apple Silicon |
| Network | Stable internet connection |
- Language: Swift 5.9+
- UI: SwiftUI
- Networking: AWS SDK for Swift (S3-compatible API)
- Security: macOS Keychain Services
- Architecture: MVVM + ObservableObject
git clone https://github.com/sanvibyfish/OwlUploader.git
cd OwlUploader
open OwlUploader.xcodeproj- Xcode 16.0+
- Select Mac target, press
Cmd + R
- Launch OwlUploader and open Account Settings
- Enter your Cloudflare R2 credentials:
- Account ID (from Cloudflare dashboard)
- Access Key ID & Secret Access Key (R2 API token)
- Endpoint URL:
https://[AccountID].r2.cloudflarestorage.com
- Click Save and Connect
- Optionally add public domains for link generation
- Credentials stored in macOS Keychain (not in plain text)
- App Sandbox enabled
- All network traffic over HTTPS
- No data sent to third-party servers
- Fork this repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes
- Push and open a Pull Request
Guidelines: Follow Swift conventions. Keep files under 500 lines. Add tests for new features.
- AWS SDK for Swift — S3-compatible API
- Cloudflare R2 — Object storage
