Telegramm Unbegrenztes Netzwerklaufwerk. Kostenlos

Hallo Habr.

Sicherlich haben viele Leute darĂŒber nachgedacht, vielleicht hat jemand diese Idee in TODO. Sie lag ungefĂ€hr ein Jahr bei mir, schaffte es aber dennoch, es in Form eines funktionierenden Prototyps umzusetzen.

TgCloud:


  • Open Source G **** Code des virtuellen Dateisystems.
  • Auf der lokalen Festplatte - nur Metadaten: Namen, GrĂ¶ĂŸe, Ordnerstruktur usw.
  • Daten werden in Telegramm gespeichert und nur heruntergeladen, wenn mit einer Datei gearbeitet wird
  • Die GrĂ¶ĂŸe und Art der Dateien ist nicht begrenzt, kann mit jedem Betriebssystem verwendet werden

Implementierungsdetails und ein Link zum Repository unter der Katze.



Idee


Die Idee, VFS basierend auf Telegramm zu erstellen, kam wĂ€hrend der Arbeit an AudioTubeBot und VideoTubeBot auf - nachdem ich einen Weg gefunden hatte , das 50-MB-Limit fĂŒr das Herunterladen von Dateien fĂŒr Bots zu umgehen - habe ich den Telegramm-Quellcode studiert - ich habe viele interessante Dinge entdeckt. Beispielsweise ist die Download-Geschwindigkeit hauptsĂ€chlich auf dem Client selbst und nicht auf dem Server begrenzt.

Infolgedessen habe ich die Download-Geschwindigkeit in die Telegramm-Cloud auf ~ 240 Mbit / s pro Sitzung erhöht (sie funktioniert seit mehr als einem Jahr stabil), was 15-mal schneller ist als der offizielle Client.

Der logische Schritt bestand darin, unbegrenzten Dateispeicher mit hoher Download-Geschwindigkeit als Netzwerklaufwerk zu verwenden - höchstwahrscheinlich tun dies viele, aber das Problem ist, dass Telegramm-Clients fĂŒr die Suche und Organisation von Dateien unpraktisch sind. DarĂŒber hinaus gibt es ein Limit von 1,5 GB pro DateigrĂ¶ĂŸe.

Sicherung


Um diese Probleme zu lösen, habe ich mich zunÀchst entschlossen, einen Linux-Kernel-Patch zu erstellen und mein eigenes virtuelles Dateisystem zu erstellen, in dem Dateien, die in Telegram hochgeladen wurden, bequem nur mit Metadaten gruppiert werden.

Bei der Untersuchung des Problems stellte sich heraus, dass das Patchen des Kernels ĂŒberhaupt nicht erforderlich ist. Linux verfĂŒgt ĂŒber ein spezielles FUSE-Kernelmodul , mit dem Entwickler neue Arten von Dateisystemen erstellen können, auf die Benutzer ohne Berechtigungen zugreifen können. Es gibt Wrapper fĂŒr fast alle gĂ€ngigen Sprachen fĂŒr das Modul.



Telethon


Um auf Telegram zuzugreifen, verwende ich die Telethon- Bibliotheksversion 0.19.1 mit meinem modifizierten Multithread-Datei-Upload (TelegramClientX).

Vfs


Um ein Dateisystem nicht von Grund auf neu zu schreiben, wird Python dedupfs verwendet, das Fuse und SQLite zum Speichern von Metadaten verwendet, Dateien in Blöcke zerlegt, den sha1-Hash berĂŒcksichtigt und dieselben Blöcke wiederverwendet. Sie mĂŒssen lediglich die Methoden zum Laden von Daten in den Speicher durch Ihre eigenen ersetzen.

Tgcloud


Durch die Kombination all dessen haben wir einen funktionierenden tgcloud- Prototyp erhalten, der bisher ohne Platzgeschwindigkeit war , aber immer noch funktioniert. Ich hoffe, die Community fĂŒr die Entwicklung zu gewinnen. Die heruntergeladenen Dateien werden in Blöcke von 10 MB unterteilt, sha1 wird berechnet und in SavedMessages geladen, der Hash wird in der lokalen Datenbank gespeichert und beim Lesen des Blocks befindet sich die Datei darauf. Blöcke werden in der erforderlichen Reihenfolge zusammengeklebt und ein Bytestrom wird ausgegeben - als wĂŒrden Sie sie von der Festplatte lesen.

Code ausfĂŒhren


  • Sie mĂŒssen api_hash und api_id auf my.telegram.org abrufen und diese Daten zusammen mit der Telefonnummer Ihres Kontos in tg_access.py einfĂŒgen
  • Erstellen Sie eine Sitzung, indem Sie sie im Projektordner ausfĂŒhren

    python3.6 download_service.py



  • sudo yum install python-fuse


  • mkdir storage
  • VFS:


    python dedupfs/dedupfs.py -df --block-size 10240000 storage/



    python dedupfs/dedupfs.py --block-size 10240000 storage/
  • , filebrowser

.

P.S. ( )


— , .. — « », — — , , — — . — , , 90% , VFS — .
— , — , Telegram — « — .. ..»

Telegram

GitHub



DEDIC.SH Intel Scalable 2019 :
  • 2x Xeon Silver 4214 — 24
  • 2x Xeon Gold 5218 — 32
  • 2x Xeon Gold 6240 — 36 .

Xeon Silver 4214 — 15210 /
— !

— VDS 150 / — , !

Source: https://habr.com/ru/post/de456290/


All Articles