CLI tool untuk menyimpan file ke Telegram sebagai cloud storage pribadi dengan enkripsi end-to-end.
File otomatis:
- Dipecah menjadi 18MB per part
- Diencrypt (AES-256-GCM) per chunk
- Digabung & didecrypt kembali saat download
- ✅ Upload file besar (auto split 18MB)
- ✅ AES-256-GCM encryption per chunk
- ✅ End-to-End encrypted (Telegram tidak bisa baca isi file)
- ✅ Progress bar real-time
- ✅ Speed (MB/s)
- ✅ ETA (Estimasi waktu selesai)
- ✅ Download & auto decrypt
- ✅ Hapus file dari database
- ✅ Database ringan berbasis JSON (LowDB)
- ✅ Compatible Windows & Termux
- Node.js
- Telegraf
- LowDB
- Axios
- dotenv
- Crypto (built-in Node)
- Node.js v18+
- Telegram Bot
- Private Channel Telegram (bot harus admin)
git clone https://github.com/yourusername/telegram-cloud-storage.git
cd telegram-cloud-storagenpm installJika manual:
npm install telegraf axios readline-sync uuid lowdb dotenvBuat file .env di root project:
TOKEN=YOUR_BOT_TOKEN
CHANNEL_ID=-1001234567890
SECRET_KEY=super_rahasia_kamuJika SECRET_KEY berbeda → file tidak bisa didecrypt.
- Buka Telegram
- Chat
@BotFather - Ketik
/newbot - Ikuti instruksi
- Copy token yang diberikan
- Kirim pesan apa saja ke channel private
- Forward pesan tersebut ke bot
@RawDataBot - Cari bagian:
forward_origin.chat.id
Contoh:
{
"forward_origin": {
"chat": {
"id": -1001234567890
}
}
}Gunakan angka tersebut sebagai:
CHANNEL_ID=-1001234567890
Pastikan bot:
- Sudah ditambahkan ke channel
- Sudah dijadikan Admin
- Memiliki izin:
- Send Messages
- Send Media
- Send Files
Jika tidak, akan muncul:
403: Forbidden: bot is not a member of the channel chat
node cloud.js===== TELEGRAM CLOUD STORAGE =====
1. Upload File
2. List File
3. Download File
4. Delete File
5. Exit
[██████████████░░░░░░░░░░░░] 48.32% | ⚡ 3.41 MB/s | ⏳ ETA 12.3s
Algoritma:
AES-256-GCM
Setiap chunk disimpan dalam format:
[IV (12 byte)] + [AuthTag (16 byte)] + [Encrypted Data]
Keamanan:
- Tanpa SECRET_KEY → file tidak bisa dibuka
- Telegram hanya menyimpan data terenkripsi
- Bahkan jika file_id bocor → tetap aman
⚠ Jika SECRET_KEY hilang, file tidak bisa dipulihkan.
File database:
database.json
Struktur:
{
"files": [
{
"id": "uuid",
"original_name": "video.mp4",
"file_size": 123456789,
"file_ids": ["fileid1", "fileid2"]
}
]
}- File dibaca sebagai stream
- Dipecah 18MB per chunk
- Tiap chunk diencrypt (AES-256-GCM)
- Dikirim ke Telegram
- file_id tiap part disimpan ke database
- Ambil file_id dari database
- Download tiap part dari Telegram API
- Decrypt tiap chunk
- Gabungkan menjadi file asli
- Jangan ubah SECRET_KEY setelah upload
- Pastikan koneksi internet stabil
- Channel sebaiknya private
- Jangan share TOKEN & SECRET_KEY ke publik
- Backup file
.envdandatabase.json
.
├── cloud.js
├── database.json
├── .env
├── package.json
└── README.md
- Resume upload jika terputus
- Parallel upload
- Compression sebelum encrypt
- Password per file
- Multi-user support
- Web dashboard version
- Docker support
- Deploy ke VPS