Huhum
Je savais pas trop ce qui existait en transfert de fichier, du coup j'ai créé f42p.com voila rip. Tu drop un fichier,
ça te génères un url, tu l'envois a un.e ami.e et ça dl le fichier, quel que soit sa taille, en connexion directe.
Le fichier est transferé directement en peer to peer, et n'est donc stocké nul part, c'est pratique MAIS le transfert ne peux avoir lieu que si
la machine a l'origine du partage reste en ligne. Des que tu ferme la page de partage, ou annule un partage, ce fichier
devient innaccessible.
Donc voila maintenant n'importe qui peut en profiter, y'as pas a creer de compte, pas de pub, pas plein d'étapes chiantes,
J'ai essayer de faire en sorte que ce soit plus facile d'utilisation possible (si tu veux te compliquer la vie pour envoyer un fichier tu peux faire un torrent,
ou utiliser des outils plus technique de ftp etc...)
Le fichier ne transit par aucun server et n'est visible que par toi et ceux à qui tu envois l'url. Je fournis juste la
platforme qui permet de mettre en relation deux utilisateur pour qu'il se partagent un fichier.
J'ai aussi integré un pti système qui permet a toute les personnes qui telechargent un même fichier de s'aider entre-elles.
La vitesse de telechargement ne devrait donc pas trop baisser même a plusieur sur un meme fichier (ça depend de la taille des fichiers,
a cause d'une limitation sur la taille du cache autoriser par les web-browser, déso le javascript c'est pas non plus le top (le but c'est avant tout la
facilité d'utilisation le transfert est pas aussi rapide qu'il pourrait l'être avec un torrent ou un utilitaire dedié hors browser, ça reste honnète)).
On peut même drop plusieurs fichiers d'un coup, ça les enverra ensemble sous la forme d'un .zip non-compressé de l'autre côté.
A priori a cause de la facon dont fonctionne le site (a cause de la mise en cache temporaire surtout), çe ne fonctionnera pas en mode navigation privé
(logique, le but du mode privé c'est de ne pas laisser de trace, donc pas de mise ne cache des fichiers ...)
Socialz
Pour des retours ou des idées a implementer (je vais sans doute m'en foutre mais tu peux venir quand meme) ou si t'as trouvé des
bugs (je veux pas l'savoir en fet (fin si mais ça me fera chier (bon j'arrête les parenthèse en cascade (yey du lisp)))) :
? Nawak ?
Comment marchasse
Quand tu partage un fichier, ca te connecte a mon server de mise en relation entre pairs (on
appeleras ce server SAMER (server automatique de mise en relation)). Il t'assignes un identifiant UID unique
generé aléatoirement (il va donc changer entre deux sessions). Ensuite un identifant FID unique est donné (localement)
au fichier (ou groupe de fichiers). L'url généré que a envoyer ensuite contient a la fois ton UID et
le FID du fichier partagé
Cet url va être envoyé par l'envoyeur (du fichier) à un destinataire qui va l'ouvrir, se connecter au même server SAMER, demander au server si l'utilisateur
correspondant a l'identifiant UID est dispo, puis initier une connection directe (peer to peer) avec lui. (la connection
est mise en place par l'intermediaire du server SAMER qui fait office de canal SIGNAL (webrtc signaling / negotiation / ice trickling etc... si ça vous parle ))
A partir de la, la communication s'effectue uniquement entre les deux pairs (le destinataire se deconnecte du server SAMER).
SAMER ne connais pas le FID du fichier que les deux voulais partager. Le destinaire envois ensuite a l'envoyeur une requete pour telecharger le fichier
correspondant au FID de l'url, qui lui est envoyé découpé en CHUNK (~4mo), paquet par paquet. (~4ko)
Une portion ou la totalité du fichier est temporairement gardée en cache sur la machine du destinataire (depends de la taille, au total il y'a une limite de 2go de cache
(le cache est conservé le disque dur pas dans la ram)), ce cache permet a la fois de télécharger des CHUNK qui arrivent potentiellement en désordre, et permet aussi
à chaque destinataire de partager ses CHUNKS en cache avec les autres utilisateurs qui telechargent le même fichier (les connections entre
destinataires sont mises en place par a l'envoyeur initial du fichier (si il ne partage plus, les nouveaux partage entre pairs destinataires ne sont plus possible)).
Vie privé
le server de mise en relation des pairs ne contient que la liste des utilisateur en train activement de partager des fichier, et ne
se réfèrent a eux que par leur UID genéré aléatoirement lors des nouvelle connection (refresh la page génère alors nouvelle UID).
Tout ce qu'il sait c'est donc que tel UID a demander a se connecter avec tel UID.
Les connections entre eux se font ensuite en utilisant le protocole webrtc du javascrip. Le server lui même tourne sur nodeJS et est ecrit en (surprise) javascript et utilise
les websockets. Je publierais peut-etre les sources plus tard (spoiler : c'est immonde deso).
Potentiellement je pourrais accéder a l'IP des utilisateur et créer une genre de carte des connection entre ces IP.
Je ne le ferais jamais, mais ne faite pas confiance a quelqu'un sur internet et si vous travaillez avec des fichier sensible
agissez en consequence.
Je ne connais pas exactement les specifications du webrtc, et de mon côté je n'encrypte pas les paquets des bouts de fichier entre peers et
il est possible qu'une 'deep packet analysis' de la connection entre deux utiliseurs puisse réveler leur contenus. Dans tout les cas,
ne prenez pas de risque avec vos fichiers sensible et encryptez les AVANT d'utiliser ma platforme. (j'implementerais peut etre un jour un mode
sécurisé, qui encrypterais chaque paquet avec un systeme de clef publique / privé généré lors de la connection entre les deux pairs, je verrais, dans tout les cas
NE ME FAITE PAS CONFIANCE, prenez des précautions adapté a la sensibilité des fichiers partagés).
Euhhh, c'est légal ?
Je suis basé en france (c'est dit rip), a priori ça doit être légal de mettre en relation des gens pour qu'il puisse
ensuite eux meme se partager des fichiers SANS QUE JE SOIS IMPLIQUE a partir de là ? Oh well on se verra en prison.
Comment ça peut être gratuit ? C'est une arnaque !
Au départ j'ai créé cet outil pour moi, et du coup je le met a disposition.
Je sais c'est con. Les coûts (faible j'espère) sont donc entièrement à
ma charge. Si le trafique augmente beaucoup (trop), pour garder ce service en ligne il faudra
que j'upgrade mon matos.
Je ne rendrais pas le service payant (ni pub ni revente de donnés
(j'ai pas de donné a revendre de toute façon)), MAIS je vous demande GENTIMENT un ptite pièce :'c .
Au pire c'est votre problème si je ne peux plus fournir ce service, donc voila:
Si vous utiliser cet outils,
si vous le trouver cool et que vous voulez qu'il continue a exister, ou si vous êtes juste con, balance une crypto
(si tu veux aider mais autrement
viens sur le discord et pose la question et ptête je mettrais en place d'autre
moyen pour me soutenir):
btc:
bc1qzpgzsfq5v997sntgm5qm2uyxsjqdamqxjydvzx
eth:
0x2e09A62c9f90e12C9c0C0111d3Bdb5B8f03f4Cc9
doge:
D9pGR8MHEYMvYiunoQKd364Eo4KQQfuFWv
ubq:
0xDc6EB6F9F20f1c5118DccD10b58dCE64335f0AB6
Aled je sui perdu :c
Désolé que tu ais eu à subir cette page.
On ne sais pas trop ce que tu fais ici alors que tu devais juste vouloir partager des fichiers,
ne me remercie pas :