Plateforme SaaS · En production

EnvoiDirect

Rendre l’envoi de fichiers volumineux aussi direct qu’un e-mail, avec une architecture qui protège les données, facture ses offres et reste fiable quand le transfert dure.

PHP 8.2MariaDBApacheStripeJavaScriptVPS Linux
Découvrir EnvoiDirect
Interface illustrative d’EnvoiDirect montrant trois fichiers prêts à être transférés

Le problème

Un geste très simple côté utilisateur cache une chaîne technique exigeante.

Un transfert peut réunir plusieurs fichiers, durer assez longtemps pour rencontrer une coupure réseau, puis être téléchargé plus tard depuis un autre appareil. Il faut reprendre les morceaux sans confusion, assembler sans saturer la mémoire du serveur, conserver les noms utiles sans leur faire confiance, supprimer les données à la date prévue — et, sur un produit vendu par abonnement, refuser proprement ce qui dépasse l’offre souscrite.

50 Gopar transfertDécoupé en morceaux de 5 Mo, jamais chargé en mémoire — ni côté navigateur, ni côté serveur.
0dépendance externeAucun CDN, aucune police distante, aucun traceur. Le navigateur ne contacte que le domaine du service.
3offres facturéesLimites appliquées côté serveur depuis une configuration unique, abonnements synchronisés par webhook signé.

Fonctions en service

Le parcours utile, de l’envoi à l’expiration.

01

Envoi par morceaux

Chaque fichier est découpé en blocs de 5 Mo, envoyés un par un. Un bloc en échec est réessayé seul, sans reprendre le transfert au début.

02

Transferts multiples

Plusieurs fichiers restent réunis sous un même lien et se récupèrent séparément ou en archive ZIP construite à la volée.

03

Liens temporaires

Un identifiant aléatoire de 32 caractères donne accès au transfert jusqu’à sa date d’expiration, choisie selon l’offre.

04

Stockage isolé

Les fichiers portent des noms internes aléatoires et vivent hors du répertoire servi par Apache : aucune URL directe n’y mène.

05

Transferts protégés

Un mot de passe peut conditionner l’accès. Tant qu’il n’est pas validé, ni les noms, ni les tailles, ni le ZIP ne sont accessibles.

06

Comptes et quotas

Confirmation d’adresse, réinitialisation de mot de passe, quota de stockage cumulé et limites appliquées par offre.

07

Abonnements Stripe

Paiement, renouvellement, échec de prélèvement et résiliation reflétés en base par un webhook signé et idempotent.

08

Statistiques et alertes

Compteur de téléchargements par transfert et e-mail à l’expéditeur au tout premier téléchargement, envoyé une seule fois.

09

Exploitation

Nettoyage planifié, journaux dédiés, rotation des logs, garde d’espace disque et contrôle de santé maintiennent le service.

Ce que voit l’utilisateur

  • Une zone d’envoi lisible sur ordinateur comme sur mobile
  • La progression fichier par fichier pendant le transfert
  • Un seul lien à partager, sans créer de compte
  • Un téléchargement individuel ou groupé
  • Ses transferts retrouvés, prolongés ou supprimés

Ce qui se passe dessous

  • Des morceaux rattachés à une session et à un fichier précis
  • Un assemblage diffusé sur disque avec empreinte SHA-256
  • Des droits recalculés côté serveur à chaque requête
  • Des métadonnées séparées du stockage physique
  • Un nettoyage automatique de la base et des fichiers expirés

Le point délicat

Un compte Stripe partagé entre plusieurs projets.

Le même compte de paiement sert à d’autres services que celui-ci. Un webhook naïf aurait traité l’abonnement d’un projet voisin comme un abonnement EnvoiDirect et modifié le mauvais compte. Le point d’entrée vérifie donc la signature, puis n’agit que si le tarif reçu appartient réellement à ce produit ; tout autre événement est acquitté auprès de Stripe puis ignoré sans rien écrire. Une table d’événements traités rend l’ensemble idempotent : un renvoi de Stripe ne peut pas produire deux fois le même effet.

Mon rôle

Reprendre une base existante et la transformer en produit exploitable et vendable.

Audit du code et du serveur, sauvegarde vérifiée, déplacement des secrets et du stockage hors du site public, refonte du téléversement et du téléchargement, protections de session et CSRF, limitation de débit, journalisation sans données sensibles, nettoyage automatique. Puis la partie produit : comptes avec confirmation d’adresse et réinitialisation, offres et quotas pilotés par une configuration unique, abonnements Stripe synchronisés par webhook signé, transferts protégés par mot de passe, statistiques de téléchargement. Enfin l’interface : un design system maison qui a permis de retirer toutes les dépendances externes du navigateur, et une suite de tests d’intégration jouée contre le site réel avant chaque livraison.

Essayer EnvoiDirect

Prochaine étape

Un produit utile qui doit devenir fiable en production ?

Je peux auditer l’existant, sécuriser les flux critiques et construire une exploitation qui ne dépend pas d’une intervention manuelle permanente.

Me parler du problème