CtrlOps
|Docs
Product Modules

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

  1. 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.
  2. Buffer Management: Uploads and downloads use optimized chunk sizes (default 32KB) to maximize throughput while maintaining low memory overhead on the desktop application.
  3. Privilege Escalation (PrivEsc): For system-critical directories, CtrlOps can automatically escalate privileges using sudo for 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          │
└─────────────────────────────────────────────────────────────┘

Click any part of the path to jump to that directory:

Home > var > www > html > assets > css

Quick 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

  1. Drag files from your computer
  2. Drop into the File Manager window
  3. Files upload automatically

Method 2: Upload Button

  1. Click "Upload" button
  2. Select files from your computer
  3. Click "Open"

Upload Limits:

  • Individual file: 500 MB
  • Batch: 2 GB total
  • Resume interrupted uploads automatically

Downloading Files

Single File:

  1. Right-click file
  2. Select "Download"
  3. Choose save location

Multiple Files:

  1. Select files (Ctrl/Cmd + Click)
  2. Right-click selection
  3. "Download as ZIP"

Entire Directory:

  1. Right-click folder
  2. "Download Folder"
  3. Gets compressed as ZIP automatically

Creating Files and Folders

New Folder:

  1. Click "New Folder" button
  2. Enter folder name
  3. Press Enter

New File:

  1. Right-click in empty space
  2. "New File"
  3. Enter filename with extension
  4. 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: 644

Common 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.

Visual indicators for symbolic links:

📎 uploads → /mnt/storage/uploads

Click 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

ShortcutAction
Ctrl + UUpload files
Ctrl + NNew folder
DeleteMove to trash
F2Rename
Ctrl + FSearch
Ctrl + ASelect all
Ctrl + ClickMulti-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

  1. Backup before bulk changes

    • Download critical files first
    • Use snapshots if available
  2. Use version control

    • Git for code files
    • Natural versioning for documents
  3. Organize logically

    /var/www/
    ├── site1.com/
    ├── site2.com/
    └── shared/
        ├── uploads/
        ├── cache/
        └── logs/
  4. 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.

On this page