File Manager
Managing files with the visual SFTP interface
The File Manager provides a visual interface for managing files on your server — no command line required. Upload, download, edit, and organize files with drag-and-drop simplicity.
Technical Implementation
The CtrlOps File Manager is built on a high-performance SFTP subsystem that maintains persistent channels for zero-latency navigation.
SFTP Architecture
- Persistent Channels: When a server connection is established, the Rust backend opens a dedicated SFTP channel via
ssh2-rs. This channel remains active throughout the session, eliminating the overhead of re-authenticating for every file operation. - Buffer Management: Uploads and downloads use optimized chunk sizes (default 32KB) to maximize throughput while maintaining low memory overhead on the desktop application.
- Privilege Escalation (PrivEsc): For system-critical directories, CtrlOps can automatically escalate privileges using
sudofor specific operations (like editing/etc/nginx/nginx.conf), provided the SSH user has the necessary sudoer permissions.
Performance metrics
- List latency: < 200ms for directories with up to 1,000 items.
- Transfer Speed: Performance parity with native SCP/SFTP clients.
- Atomic Operations: File edits are saved using temporary buffers to prevent data loss during network interruptions.
Interface Overview
┌─────────────────────────────────────────────────────────────┐
│ 📁 /var/www/html [Upload] [New Folder] │
├─────────────────────────────────────────────────────────────┤
│ 📁 assets/ 📄 index.html 📁 css/ │
│ 📄 config.php 📁 images/ 📄 .htaccess │
│ │
│ Name Size Modified Permissions │
│ ───────────────────────────────────────────────────────── │
│ index.html 2.4 KB Apr 13 10:30 644 │
│ config.php 1.1 KB Apr 12 15:22 600 │
│ assets/ -- Apr 10 09:15 755 │
└─────────────────────────────────────────────────────────────┘Navigation
Breadcrumb Trail
Click any part of the path to jump to that directory:
Home > var > www > html > assets > cssQuick Actions
Right-click any file or folder for:
- Open — View or edit
- Download — Save to your computer
- Rename — Change name
- Delete — Move to trash
- Permissions — Change access rights
- Copy Path — Copy full file path
File Operations
Uploading Files
Method 1: Drag and Drop
- Drag files from your computer
- Drop into the File Manager window
- Files upload automatically
Method 2: Upload Button
- Click "Upload" button
- Select files from your computer
- Click "Open"
Upload Limits:
- Individual file: 500 MB
- Batch: 2 GB total
- Resume interrupted uploads automatically
Downloading Files
Single File:
- Right-click file
- Select "Download"
- Choose save location
Multiple Files:
- Select files (Ctrl/Cmd + Click)
- Right-click selection
- "Download as ZIP"
Entire Directory:
- Right-click folder
- "Download Folder"
- Gets compressed as ZIP automatically
Creating Files and Folders
New Folder:
- Click "New Folder" button
- Enter folder name
- Press Enter
New File:
- Right-click in empty space
- "New File"
- Enter filename with extension
- Opens in editor
Inline File Editing
Text Editor
Double-click any text file to edit:
Supported formats:
- HTML, CSS, JavaScript
- PHP, Python, Ruby
- JSON, XML, YAML
- Markdown, TXT
- Configuration files
Editor Features:
- Syntax highlighting
- Line numbers
- Find and replace
- Auto-save drafts
- Undo/redo history
Image Preview
Click images to preview:
- PNG, JPG, GIF, SVG, WebP
- Zoom in/out
- Rotate
- Download original
Code Comparison
When editing a file, see changes:
function calculateTotal() {
- return price * quantity;
+ return price * quantity * taxRate;
}Permissions Management
Visual permission editor:
📄 index.html
Owner [✓] Read [✓] Write [✗] Execute
Group [✓] Read [✗] Write [✗] Execute
Others [✓] Read [✗] Write [✗] Execute
Numeric: 644Common presets:
- 644 — Normal file (rw-r--r--)
- 755 — Executable/script (rwxr-xr-x)
- 600 — Private file (rw-------)
Be careful with permissions on sensitive files like .env or SSH keys. Use 600 for maximum security.
Search and Filter
Finding Files
Search Bar:
- Filename search
- Content search (for text files)
- Regex support
Filters:
- File type (Images, Documents, Code)
- Size range
- Modified date
- Permissions
Batch Operations
Select multiple files to:
- Delete in bulk
- Change permissions
- Move to folder
- Download as ZIP
Transfers Queue
Monitor uploads/downloads:
Transfer Queue
━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ config.php 100% 2.4 KB/s
⏳ assets.zip 45% 5.1 MB/s
⏳ database.sql 12% 3.2 MB/s
━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Pause] [Cancel All] [Clear Completed]Features:
- Pause/resume transfers
- Retry failed uploads
- Bandwidth limiting
- Transfer history
Advanced Features
SFTP/SCP Support
Behind the scenes, File Manager uses:
- SFTP for file transfers (encrypted)
- SCP for bulk operations (fast)
All connections are secured with your SSH keys.
Symlink Support
Visual indicators for symbolic links:
📎 uploads → /mnt/storage/uploadsClick to:
- Navigate to target
- Edit the link itself
- See link properties
Archive Handling
Work with archives without extracting:
View contents:
- ZIP, TAR, GZIP
- Browse without extracting
- Extract individual files
Create archives:
- Select files
- Right-click → "Compress"
- Choose format (ZIP, TAR.GZ)
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl + U | Upload files |
Ctrl + N | New folder |
Delete | Move to trash |
F2 | Rename |
Ctrl + F | Search |
Ctrl + A | Select all |
Ctrl + Click | Multi-select |
Troubleshooting
"Permission denied"
- Check file permissions
- Ensure you have write access
- Try using sudo (Settings > Use Sudo)
"Upload failed"
- Check file size limit
- Verify disk space on server
- Check network connection
"File locked"
- Another process is using the file
- Check if service is running
- Stop service, edit, restart
Slow transfers
- Enable compression (Settings > Compress uploads)
- Use wired connection
- Schedule for off-peak hours
Best Practices
-
Backup before bulk changes
- Download critical files first
- Use snapshots if available
-
Use version control
- Git for code files
- Natural versioning for documents
-
Organize logically
/var/www/ ├── site1.com/ ├── site2.com/ └── shared/ ├── uploads/ ├── cache/ └── logs/ -
Monitor disk space
- Regular cleanup of logs
- Archive old files
- Use quotas
Security Notes
- All transfers are encrypted via SSH/SFTP
- No credentials stored on intermediate servers
- Session expires after inactivity
- Two-factor authentication supported
For large file operations (10+ GB), consider using rsync from the Terminal instead of the File Manager for better performance.