توسعهدادهشده توسط تیم امنیت سایبری ساینت (Cynet Security Team)
🌐 English Documentation • چرا CyDrive؟ • قابلیتهای کلیدی • آموزش راهاندازی • داشبورد وب • دستورات ترمینال • سوالات متداول
بیایید واقعبین باشیم: اشتراکهای سرویسهای ابری خارجی (مثل گوگلدرایو، دراپباکس و واندرایو) بسیار گران هستند و حجمهای رایگان آنها به شکلی خندهدار کم است!
گوگلدرایو فقط ۱۵ گیگابایت فضای اشتراکی با جیمیل میدهد، دراپباکس فقط ۲ گیگابایت حجم دارد و برای پلنهای چند ترابایتی باید ماهانه هزینههای سنگین دلاری پرداخت کنید.
در سوی دیگر، سرورهای قدرتمند تلگرام، فضای ابری نامحدود، پرسرعت، رایگان و فوقالعاده پایداری را در اختیار کاربران قرار دادهاند.
اما استفاده سنتی از تلگرام به عنوان درایو ابری همیشه یک چالش خستهکننده بود:
- ریختن فایلها در «پیامهای ذخیرهشده (Saved Messages)» چت شما را به یک انبار بینظم، شلوغ و غیرقابلجستجو تبدیل میکرد.
- هیچ ساختار پوشهبندی درختی (Folder / Subfolder) در تلگرام وجود نداشت.
- برای هر بار استفاده یا مشاهده فایلها، باید برنامه تلگرام را باز کرده و فایلها را به صورت دستی دانلود و در ویندوز ذخیره میکردید.
پروژه CyDrive این معضل را یکبار برای همیشه حل کرده است. این نرمافزار، چت تلگرام شما را مستقیماً به یک درایو هارد دیسک واقعی در ویندوز (مانند درایو Y:) تبدیل میکند!
فقط کافیست یک پوشه حجیم را با موس بکشید و داخل درایو Y: ویندوز رها کنید؛ CyDrive ساختار پوشهها را در دیتابیس هوشمند SQLite ثبت کرده و فایلها را با پروتکل پرسرعت MTProto در تلگرام آپلود میکند. همچنین اگر بیرون از منزل باشید و با گوشی عکسی را به ربات تلگرام خود بفرستید، به محض بازگشت به خانه، آن عکس بدون نیاز به هیچ کابل یا نرمافزار جانبی داخل درایو Y: کامپیوترتان آماده استفاده است — همهچیز بدون اشغال حتی ۱ بایت از فضای هارد دیسک فیزیکی سیستم شما!
| قابلیت | 📁 CyDrive (نسخه ۲) | 📦 Google Drive / Dropbox | 💬 تلگرام ساده (Saved Messages) |
|---|---|---|---|
| ظرفیت ذخیرهسازی | نامحدود و رایگان (Unlimited) | ۲ تا ۱۵ گیگابایت (رایگان) | نامحدود و رایگان |
| ادغام در This PC ویندوز | درایو اختصاصی مستقل (Y:) |
نیازمند نرمافزارهای سنگین سینک | ❌ ندارد (فقط درون چت تلگرام) |
| استریم ابری بدون پر شدن هارد | ✅ استریم زنده (Zero-Disk Bloat) | ❌ باید کل فایل دانلود شود | |
| حداکثر حجم هر فایل | ۲ گیگابایت (یا نامحدود با Chunking) | ۱۵ گیگابایت (رایگان) / ۵ ترابایت | ۲ گیگابایت (۴ گیگ در پریمیوم) |
| پوشهبندی درختی و تودرتو | ✅ دیتابیس سلسلهمراتبی SQLite | ✅ دارد | ❌ ندارد (جریان چت خطی) |
| نیاز به درایورهای سنگین کرنل | ❌ خیر (WebDAV بومی ویندوز) | ❌ خیر | |
| پنل وب اختصاصی با پلیر مدیا | ✅ داشبورد سایبرپانکی مدرن (:8088) |
✅ پنل وب استاندارد | |
| رمزنگاری سمت کاربر (Zero-Knowledge) | ✅ اختیاری با الگوریتم AES-256-GCM | ❌ رمزنگاری اختصاصی سمت سرور |
- 🔄 همگامسازی دوطرفه بلادرنگ (Two-Way Sync):
فایل یا پوشهای را داخل درایوY:ویندوز کپی کنید؛ بلافاصله در پسزمینه به تلگرام آپلود میشود. اگر فایلی را در تلگرام برای ربات بفرستید، بلافاصله در درایوY:و پنل وب ظاهر میشود. - 📁 درایو مجازی بومی ویندوز (
Y:):
در کنار درایوهایC:وD:در پنجره This PC ویندوز اکسپلورر دیده میشود. هنگام اجرای برنامه خودکار متصل (Mount) و هنگام خروج بدون دردسر جدا (Unmount) میشود. - 🌐 داشبورد تحت وب سایبرپانکی (
http://127.0.0.1:8088):
رابط کاربری مدرن با تم تاریک، انیمیشنهای شیشهای (Glassmorphism)، عقربه حجم مصرفی و آمار لحظهای.
پخش آنلاین مدیا: تماشای فیلمهای MP4، گوش دادن به موزیکهای FLAC/MP3 و نمایش عکسها داخل مرورگر بدون نیاز به دانلود کل فایل! - 🗄️ موتور فراداده فوقسریع SQLite WAL:
ثبت ساختار درختی پوشهها، هش SHA-256 فایلها و شناسههای پیام در تلگرام. جستجو و فیلتر میان صدها هزار فایل در کسری از میلیثانیه. - 👁️ مانیتورینگ رویدادهای فایلسیستم با
watchdog:
مصرف نزدیک به صفر پردازنده (بدون استفاده از حلقههای سنگینos.walk). مجهز به الگوریتم بررسی پایداری و باز بودن فایل (is_file_ready) برای جلوگیری از آپلود فایلهای ناقص حین کپی. - 🧩 تقسیم خودکار فایلهای بسیار حجیم (Chunking بالای ۲ گیگابایت):
امکان آپلود و نگهداری فایلهای سنگین (۵، ۲۰ یا ۵۰ گیگابایت) با تقسیم خودکار به پارتهای استاندارد و اسمبل نامرئی هنگام دانلود. - 🤖 ربات هوشمند کنترل از راه دور:
- دستور
/statsبرای گزارش حجم کل ابری و تعداد فایلهای ذخیرهشده. - دستور
/search <نام_فایل>برای جستجوی سریع در دیتابیس درایو. - دستور
/get <نام_فایل>برای دانلود مستقیم هر فایلی از روی گوشی.
- دستور
- 🔐 رمزنگاری امن سمت کلاینت (اختیاری):
رمزنگاری فوقالعاده امن سرتاسری با استاندارد نظامی AES-256-GCM؛ فایلها پیش از خروج از کامپیوتر رمزگذاری میشوند و حتی تلگرام هم محتوای آنها را نمیبیند.
flowchart TD
subgraph Windows Environment
EXP["📁 Windows File Explorer<br/>(Network Drive Y:)"]
WEB["🌐 Cyberpunk Web Dashboard<br/>(http://127.0.0.1:8088)"]
end
subgraph CyDrive Core Engine
WEBDAV["⚡ WebDAV Engine (WsgiDAV + Cheroot)<br/>127.0.0.1:8080"]
VFS["🗄️ SQLite VFS Meta Engine<br/>(cydrive_meta.db)"]
CACHE["💾 Smart LRU Cache Manager<br/>(Zero-Disk on-demand streaming)"]
CHUNK["🧩 File Chunker & AES Crypto"]
end
subgraph Telegram Cloud Infrastructure
CLIENT["🚀 Telethon MTProto Engine<br/>(Parallel Multi-Part Async)"]
BOT["🤖 Telegram Bot Remote Controller<br/>(/stats, /search, /get)"]
CLOUD["☁️ Telegram Cloud Storage<br/>(Encrypted Datacenters)"]
end
EXP <-->|Native WebDAV Protocol| WEBDAV
WEB <-->|REST API + Streaming| VFS
WEBDAV <--> VFS
VFS <--> CACHE
WEBDAV -->|Upload Stream| CHUNK
CHUNK --> CLIENT
CLIENT <--> BOT
CLIENT <-->|Fast MTProto| CLOUD
برای راهاندازی CyDrive فقط به ۵ دقیقه زمان نیاز دارید. مراحل زیر را به ترتیب دنبال کنید:
- برنامه تلگرام را باز کنید و وارد ربات رسمی @BotFather شوید.
- دکمه Start را بزنید و سپس دستور
/newbotرا ارسال کنید. - یک نام نمایشی برای ربات خود بنویسید (مثلاً:
My Personal Drive). - یک یوزرنیم یکتا که آخر آن عبارت
botداشته باشد انتخاب کنید (مثلاً:MyCloud_Fast_bot). - ربات BotFather یک توکن با ساختار زیر به شما تحویل میدهد:
7123456789:ABCdefGhIJKlmNoPQRstuVWXyz_123456
این توکن را کپی کنید و در جایی نگه دارید.
- در تلگرام وارد ربات @userinfobot شوید و دکمه Start را بزنید.
- این ربات یک پیام حاوی شناسه عددی اکانت شما (مانند
123456789) ارسال میکند. این عدد، همان Chat ID شماست. - در نهایت، وارد چت ربات جدیدی که در گام اول ساختید شوید و روی دکمه Start کلیک کنید تا ربات اجازه ارسال پیام به شما را داشته باشد.
🪟 در ویندوز (Windows PowerShell / CMD):
git clone https://github.com/thecynetx/CyDrive.git
cd CyDrive
pip install -r requirements.txt
python main.py🐧 در سرورهای لینوکس (Ubuntu 22+/24+, Debian 12+, CentOS VPS):
# نصب پیشنیازها
sudo apt update && sudo apt install -y python3 python3-pip python3-venv git
# کلون و ورود به پوشه
git clone https://github.com/thecynetx/CyDrive.git
cd CyDrive
# روش اول (پیشنهادی و بدون تداخل با پکیجهای دبیان):
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 main.py
# روش دوم (نصب مستقیم روی کل سرور بدون محیط مجازی):
pip install -r requirements.txt --break-system-packages --ignore-installed
python3 main.py- در اولین اجرا چه رخ میدهد؟
- بنر شیک و ترمینال رنگی ساینت بالا میآید.
- برنامه از شما Bot Token و سپس Chat ID را میپرسد.
- در ویندوز حرف درایو (پیشفرض
Y:) و در لینوکس دسترسی عمومی وبپنل برای VPS سوال میشود. - برنامه به طور خودکار تنظیمات را ذخیره کرده، درایو ابری را متصل نموده و تمام سرویسها را اجرا میکند!
در لینوکس بر خلاف ویندوز مفهوم «حرف درایو» وجود ندارد؛ بلکه درایو ابری ساینت به ۳ روش فوقالعاده کاربردی در اختیارتان قرار میگیرد:
روی هر دستگاهی (کامپیوتر یا موبایل) مرورگر خود را باز کرده و نشانی زیر را وارد کنید:
👉 http://YOUR_SERVER_IP:8088
- آپلود آسان: فایلها را مستقیماً با ماوس به داخل مرورگر بکشید و رها کنید تا در تلگرام ذخیره شوند.
- پلیر آنلاین مدیا: ویدیوها (MP4/MKV) و آهنگها (MP3/FLAC) را بدون نیاز به دانلود، مستقیماً از روی تلگرام تماشا کنید یا بشنوید.
- جستجوی بلادرنگ: هر فایلی را بر اساس نام در کسری از ثانیه پیدا کرده و با یک کلیک دانلود کنید.
با نصب پکیج davfs2، یک پوشه اختصاصی متصل به کلود در مسیر ~/CyDrive در اختیارتان قرار میگیرد:
# نصب ماونتر WebDAV در لینوکس
sudo apt install -y davfs2
# اجرای CyDrive (پوشه ~/CyDrive خودکار ماونت میشود)
python3 main.pyاکنون تمامی دستورات لینوکس مستقیماً روی تلگرام اعمال میشوند:
# کپی یک فایل حجیم به کلود تلگرام
cp /var/backups/database.tar.gz ~/CyDrive/
# مشاهده لیست فایلهای موجود در فضای ابری
ls -la ~/CyDrive/سرور استاندارد WebDAV روی پورت 8080 فعال است. میتوانید با ابزار قدرتمند Rclone آن را به عنوان یک ریموت کلود بینهایت تعریف کنید:
# دستور تنظیم rclone
rclone config
# نوع: webdav | آدرس: http://127.0.0.1:8080 | vendor: other
# سینک خودکار دایرکتوری سایت یا دیتابیس به تلگرام:
rclone sync /var/www/html/ cydrive:/MySiteBackup/ -Pپس از اجرای برنامه، مرورگر خود را باز کرده و وارد نشانی زیر شوید:
👉 http://127.0.0.1:8088 (یا http://YOUR_SERVER_IP:8088 روی سرور VPS)
پروژه CyDrive دارای یک ابزار مدیریت جامع خط فرمان است:
| دستور | توضیح عملکرد |
|---|---|
python main.py run |
اجرای کامل تمام سرویسها (WebDAV، تلگرام، پنل وب و ماونت خودکار درایو) |
python main.py mount |
اتصال و ماونت درایو شبکه ویندوز (مانند درایو Y:) |
python main.py unmount |
قطع اتصال و حذف ایمن درایو شبکه از ویندوز اکسپلورر |
python main.py fix-reg |
بهینهسازی خودکار رجیستری ویندوز برای حذف محدودیت ۵۰ مگابایتی WebDAV (تا ۴ گیگابایت) |
python main.py stats |
نمایش سریع آمار حجم ابری، تعداد فایلها و وضعیت دیتابیس در ترمینال |
python main.py setup |
اجرای مجدد ویزارد تعاملی دریافت و ویرایش توکن و تنظیمات |
بسیاری از کاربران هنگام ماونت درایو شبکه در ویندوز اکسپلورر سوال میپرسند:
«چرا درایو
Y:ظرفیت هارد اصلی من (مثلاًTotal size: 952 GB, Free: 263 GB) را نشان میدهد؟ آیا هارد من اشغال میشود؟»
- علت رفتار ویندوز اکسپلورر:
درایوهای شبکه محلی (127.0.0.1) در ویندوز توسط سرویس پیشفرضWebClientویندوز هدایت میشوند. در سیستمعامل ویندوز، نوار گرافیکی درایوهای شبکه محلی به عنوان یک رفتار پیشفرض ویندوز، نشانگر بصری را بر اساس ظرفیت درایو میزبان (C:) رندر میکند. - فایلها در واقعیت کجا ذخیره میشوند؟
۱۰۰٪ روی سرورهای ابری تلگرام. در کامپیوتر شما، فایل فقط برای چند ثانیه هنگام انتقال به عنوان بافر موقت قرار میگیرد و به محض اتمام آپلود به تلگرام، به صورت خودکار و بلافاصله از روی هارد پاک (Delete) میشود. - آزمایش اثبات برای اطمینان شما:
- حجم خالی درایو
C:خود را یادداشت کنید (مثلاً۲۶۳.۱ گیگابایت). - یک فایل حجیم (مثلاً ۵۰۰ مگابایت یا ۱ گیگابایت فیلم) را داخل درایو
Y:کپی کنید. - پس از مشاهده پیام
✅ [CLOUD UPLOAD] Successfully uploaded، حجم درایوC:را دوباره چک کنید. - خواهید دید که حجم درایو C شما دقیقاً همان ۲۶۳.۱ گیگابایت مانده است و پوشه پروژه دقیقاً ۰ بایت است!
- حجم خالی درایو
پروژه CyDrive دارای یک سوییت کامل از تستهای خودکار است که سلامت تمام ماژولها را ارزیابی میکند:
# اجرای تمامی تستهای یکپارچهسازی و اعتبارسنجی
python -m unittest discover testsس: هنگام انتقال فایلهای بالای ۵۰ مگابایت در ویندوز، ارور «File size exceeds the limit allowed» میگیرم. راهحل چیست؟
کلاینت WebDAV پیشفرض ویندوز به صورت کارخانهای انتقال تکفایلها را به ۵۰ مگابایت محدود کرده است.
برای حذف کامل این محدودیت، کافیست فقط یکبار دستور زیر را در ترمینال اجرا کنید:
python main.py fix-reg(یا پاورشل را در حالت Run as Administrator باز کرده و دستور Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WebClient\Parameters" -Name "FileSizeLimitInBytes" -Value 4294967295 -Type DWord را بزنید و سرویس WebClient را ریاستارت کنید).
س: آیا این برنامه هارد کامپیوتر من (درایو C) را پر میکند؟
خیر، مطلقاً خیر! معماری CyDrive بر پایه سیستم فایل مجازی ابری (Zero-Disk Cloud Streaming) طراحی شده است. تمام فایلهای شما فقط در تلگرام ذخیره میشوند و در دیتابیس محلی فقط شناسهها و حجم آنها ایندکس میشود (۰ بایت اشغال هارد). تنها در زمان باز کردن یا پخش یک فایل، بایتهای آن به صورت زنده و آنلاین استریم میشوند و بافرهای آپلود بلافاصله پاک میشوند.
س: آیا اکانت تلگرام من به دلیل استفاده از این ابزار بن (مسدود) میشود؟
خیر. این ابزار از توکن رسمی بات تلگرام و کلاینت استاندارد MTProto بر پایه کتابخانه محبوب Telethon استفاده میکند. تمام محدودیتهای نرخ ارسال تلگرام (FloodWait) رعایت شده و رفتار برنامه کاملاً استاندارد و قانونی است.
س: اگر در حین آپلود اتصال اینترنت قطع شود چه اتفاقی میافتد؟
موتور SQLite تمام وضعیت فایلها را ثبت میکند. به محض برقراری مجدد اینترنت، پردازش فایلهای آپلودنشده از همان نقطه ادامه مییابد.
CyDrive/
├── assets/ # بنرها، لوگوها و تصاویر پیشنمایش
│ ├── banner.jpg
│ ├── logo.jpg
│ ├── web_dashboard.png
│ └── cli_preview.png
├── cydrive/
│ ├── __init__.py # اطلاعات ماژول و نگارش بسته
│ ├── cli.py # رابط خط فرمان رنگی، هماهنگکننده و جدول وضعیت
│ ├── config.py # مدیریت تنظیمات، اعتبارسنجی و ویزارد هوشمند
│ ├── database.py # موتور فراداده سلسلهمراتبی SQLite در حالت WAL
│ ├── crypto.py # موتور رمزنگاری سرتاسری AES-256-GCM
│ ├── chunker.py # ماژول تقسیم فایلهای حجیم بالای ۲ گیگابایت
│ ├── telegram_client.py # کلاینت ناهمگام MTProto تلگرام و کنترلر ربات
│ ├── watcher.py # مانیتورینگ رویدادهای زنده فایل سیستم و قفل فایل
│ ├── cache_manager.py # سیستم کش هوشمند بر اساس تقاضا (LRU Cache)
│ ├── webdav_server.py # سرور درایو مجازی WebDAV
│ ├── web_ui/ # داشبورد تحت وب سایبرپانکی
│ │ ├── app.py # سرور سبک aiohttp و وبسرویس REST
│ │ ├── static/ # استایلهای شیک CSS و کدهای تعاملی JS
│ │ └── templates/index.html# قالب واکنشگرای پنل وب
│ └── platform/
│ ├── windows.py # تنظیمات رجیستری و ماونتر خودکار درایو ویندوز
│ └── linux_mac.py # ماونتر بومی دایرکتوری در لینوکس و مکاواس
├── tests/ # مجموعه تستهای خودکار پروژه
│ ├── test_all_features.py
│ └── test_web_ui.py
├── main.py # نقطه ورود اصلی برنامه
├── tgdrive.py # فایل ورود سازگار با نسخههای قبلی
├── requirements.txt # پکیجهای پیشنیاز پایتون
├── config.example.json # نمونه فایل کانفیگ
├── .gitignore # قوانین نادیدهگیری فایلهای محلی در گیت
├── LICENSE # لایسنس متنباز MIT
├── README.md # مستندات کامل فارسی
└── README_EN.md # مستندات کامل انگلیسی
از هرگونه مشارکت، گزارش باگ یا افزودن قابلیتهای جدید با آغوش باز استقبال میکنیم!
- ریپازیتوری را Fork کنید.
- شاخه ویژگی خود را بسازید (
git checkout -b feature/NewFeature). - تغییرات را کامیت کنید (
git commit -m 'feat: Add NewFeature'). - به شاخه خود پوش کنید (
git push origin feature/NewFeature). - یک Pull Request ایجاد نمایید.
این پروژه تحت مجوز MIT License منتشر شده است. برای جزئیات بیشتر به فایل LICENSE مراجعه کنید.
- توسعهدادهشده توسط: تیم امنیت سایبری ساینت (Cynet Security Team)
- گیتهاب رسمی: @thecynetx
- ریپازیتوری پروژه: https://github.com/thecynetx/CyDrive
- پشتیبانی و ایمیل: norahsfavi@gmail.com


