ftps-accelerator
v1.0.0
Published
High-performance FTPS file downloader with speed acceleration
Downloads
110
Maintainers
Readme
🚀 FTPS Accelerator
High-performance FTPS file downloader with speed acceleration
Download files from FTPS servers 5-10x faster using parallel connections and chunked downloading.
✨ Features
- 🔥 Speed Acceleration - Multi-connection parallel downloading
- 📦 Chunked Download - Split large files into chunks for faster download
- 🔄 Resume Support - Continue interrupted downloads
- 📁 Interactive Browser - Browse remote directories with ease
- 🎯 Multiple Strategies - Auto-select optimal download strategy
- 💾 Server Profiles - Save and manage server configurations
- 📊 Progress Display - Real-time speed and ETA
📦 Installation
# Install globally
npm install -g ftps-accelerator
# Or use with npx
npx ftps-accelerator🚀 Quick Start
Interactive Mode
ftps-acceleratorThe interactive mode will guide you through:
- Enter server credentials
- Browse remote directories
- Select files to download
- Configure download settings
Command Line Options
# Quick download
ftps-accelerator -h ftp.example.com -p 990 -u username -P password -d /path/to/file.zip
# List files
ftps-accelerator -h ftp.example.com -u username -P password --list
# With options
ftps-accelerator -h ftp.example.com -u username -P password \
-o ~/Downloads \
-j 8 \
--chunks 6⚡ Speed Optimization
How it Works
| Strategy | Description | Speed Gain | |----------|-------------|------------| | Multi-file Parallel | Download multiple files simultaneously | 3-5x | | Chunked Download | Split single file into chunks | 5-10x | | Connection Pool | Reuse connections to avoid overhead | 2-3x | | Auto Strategy | Automatically select best method | 5-10x |
Configuration
# Number of parallel downloads
-j, --jobs <n> Default: 5
# Chunks per file (for large files)
--chunks <n> Default: 4
# Disable chunked download
--no-chunk📖 Usage Examples
Save Server Configuration
ftps-accelerator -h ftp.example.com -u user -P pass --save-configDownload with Custom Settings
ftps-accelerator \
-h ftp.example.com \
-u username \
-P password \
-o ~/Downloads \
-j 10 \
--chunks 8 \
-d /remote/large_file.zipList Remote Files
ftps-accelerator -h ftp.example.com -u user -P pass --list🔧 API Usage
import { ConnectionPool, DownloadAccelerator } from 'ftps-accelerator';
// Create connection pool
const pool = new ConnectionPool({
host: 'ftp.example.com',
port: 990,
user: 'username',
password: 'password',
secure: 'implicit'
}, 10);
await pool.initialize();
// Create accelerator
const accelerator = new DownloadAccelerator(pool, {
concurrent: 5,
chunksPerFile: 4,
outputDir: './downloads'
});
// Add files to download
accelerator.addTask({
name: 'file.zip',
type: 'file',
size: 104857600,
modifiedAt: new Date(),
permissions: '',
path: '/'
});
// Start download
await accelerator.start();
// Cleanup
await pool.destroy();📋 CLI Options
Options:
-h, --host <host> Server address
-p, --port <port> Port number (default: 990)
-u, --user <user> Username
-P, --password <pass> Password
-c, --config <file> Config file path
-d, --download <path> Direct download file path
-o, --output <dir> Output directory
-j, --jobs <n> Parallel downloads (default: 5)
--chunks <n> Chunks per file (default: 4)
--no-chunk Disable chunked download
--save-config Save server configuration
--list List files only
--debug Enable debug logging
--version Show version
--help Show help🔐 Security
- Passwords are encrypted when saved
- Supports self-signed certificates
- Secure TLS/SSL connections
📝 Requirements
- Node.js 18+
- npm or yarn
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
MIT License - see LICENSE for details.
🐛 Bug Reports
If you encounter any bugs, please open an issue at GitHub Issues.
Made with ❤️ for faster FTPS downloads
