Skip to content

😎 DropLy β€” File Sharing with Web & Bot Upload and manage files via website or Telegram bot. Users can upload, link, replace, delete, and set notifications. Downloads and views are logged with time and geo. Admins get a panel with stats, search, log export, bulk messaging, and notification control.

Notifications You must be signed in to change notification settings

MeherMankar/DropLy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‚ Droply v3.0 - Advanced File Sharing Platform

Enhanced file sharing service with password protection, expiration dates, download limits, and thumbnail generation.

πŸ“¦ Repository

GitHub: https://github.com/MeherMankar/DropLy.git


πŸš€ New Features

πŸ”’ Advanced Security

  • Password Protection: Secure files with custom passwords
  • File Expiration: Auto-delete files after specified time
  • Download Limits: Restrict number of downloads per file
  • Enhanced Validation: Improved file type and size checking

πŸ–ΌοΈ Media Features

  • Thumbnail Generation: Automatic thumbnails for images
  • File Preview: Visual preview before download
  • Media Support: Enhanced support for images, videos, documents

πŸ“Š Enhanced Analytics

  • Download Tracking: Monitor file access patterns
  • Expiration Monitoring: Track file lifecycle
  • Usage Statistics: Detailed file usage metrics

🎯 Quick Features Demo

Upload with Advanced Options

# Upload with password protection
curl -X POST "http://localhost:8001/api/upload" \
  -F "[email protected]" \
  -F "password=secret123" \
  -F "expires_in=7d" \
  -F "max_downloads=5"

Download Protected File

# Download with password
curl "http://localhost:8001/download/ABC123?password=secret123"

πŸ”§ New API Endpoints

Enhanced Upload

  • POST /api/upload - Upload with password, expiration, limits
    • password (optional): Password protect the file
    • expires_in (optional): Auto-delete after time (1h, 2d, 1w)
    • max_downloads (optional): Limit downloads (0 = unlimited)

File Management

  • GET /thumbnails/{filename} - Get file thumbnail
  • GET /health - System health check
  • GET /{file_code} - Enhanced file page with security info

πŸ›‘οΈ Security Features

File Protection

  • Password Encryption: bcrypt hashed passwords
  • Expiration Dates: Automatic cleanup of expired files
  • Download Limits: Prevent excessive downloads
  • Secure Access: Password validation before download

Privacy Controls

  • Anonymous Uploads: No registration required
  • Temporary Files: Auto-expiring content
  • Access Control: Password-based restrictions

πŸ“± Enhanced User Interface

Upload Page Features

  • Advanced Options Panel: Collapsible settings
  • Real-time Validation: Instant feedback
  • Progress Tracking: Visual upload progress
  • Option Preview: See selected settings

Download Page Features

  • Thumbnail Display: Image previews
  • Security Indicators: Password/limit status
  • Expiration Warnings: Time remaining alerts
  • Download Counter: Remaining downloads

πŸ”§ Configuration

Environment Variables

# File Management
MAX_FILE_SIZE=52428800
DEFAULT_EXPIRATION=7d
MAX_DOWNLOADS_LIMIT=100

# Thumbnail Settings
THUMBNAIL_SIZE=200
THUMBNAIL_QUALITY=85
GENERATE_THUMBNAILS=true

# Cleanup Settings
CLEANUP_INTERVAL=3600  # 1 hour
AUTO_CLEANUP=true

πŸš€ Deployment

Docker Compose (Updated)

version: '3.8'
services:
  droply:
    build: .
    ports:
      - "8001:8001"
    volumes:
      - ./api/files:/app/api/files
      - ./api/thumbnails:/app/api/thumbnails
    environment:
      - GENERATE_THUMBNAILS=true
      - AUTO_CLEANUP=true

Cleanup Cron Job

# Add to crontab for automatic cleanup
0 * * * * cd /path/to/droply && python -m api.cleanup

πŸ“Š Usage Examples

Basic Upload

const formData = new FormData();
formData.append('file', fileInput.files[0]);
// Simple upload - no restrictions

Protected Upload

const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('password', 'mySecret123');
formData.append('expires_in', '24h');
formData.append('max_downloads', '3');
// Protected upload with expiration and limits

Download with Password

const response = await fetch(`/download/${fileCode}?password=${password}`);
if (response.ok) {
  // Download successful
} else if (response.status === 401) {
  // Invalid password
} else if (response.status === 429) {
  // Download limit reached
}

πŸ”„ Migration from v2.0

Database Updates

-- Add new columns to existing files table
ALTER TABLE files ADD COLUMN password_hash VARCHAR(255);
ALTER TABLE files ADD COLUMN expires_at TIMESTAMP;
ALTER TABLE files ADD COLUMN max_downloads INTEGER DEFAULT 0;
ALTER TABLE files ADD COLUMN download_count INTEGER DEFAULT 0;
ALTER TABLE files ADD COLUMN thumbnail_path VARCHAR(255);

File Structure

api/
β”œβ”€β”€ files/          # Uploaded files
β”œβ”€β”€ thumbnails/     # Generated thumbnails
β”œβ”€β”€ templates/      # HTML templates
└── cleanup.py      # Cleanup script

πŸ“ˆ Performance Improvements

  • Thumbnail Caching: Efficient image processing
  • Lazy Loading: On-demand thumbnail generation
  • Background Cleanup: Automated file management
  • Optimized Queries: Enhanced database performance

πŸ” Security Enhancements

  • Password Hashing: bcrypt with salt
  • Input Validation: Enhanced file checking
  • Access Logging: Detailed audit trails
  • Rate Limiting: Prevent abuse

πŸ“ž Support & Documentation

  • Support: @Meher_Mankar
  • API Docs: /docs (Swagger UI)
  • Health Check: /health
  • Version Info: Included in health endpoint
  • Error Handling: Improved error messages

🎯 Roadmap

  • User registration system
  • File organization (folders)
  • Bulk operations
  • Advanced analytics dashboard
  • Mobile applications
  • Cloud storage integration

About

😎 DropLy β€” File Sharing with Web & Bot Upload and manage files via website or Telegram bot. Users can upload, link, replace, delete, and set notifications. Downloads and views are logged with time and geo. Admins get a panel with stats, search, log export, bulk messaging, and notification control.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published