ITSkillsCenter
Développement Web

Hetzner Object Storage en production : guide complet 2026

17 دقائق للقراءة

Une plateforme de partage de documents médicaux à Dakar stockait 4 To de PDF chez AWS S3 Frankfurt. Coût mensuel : 92 dollars en stockage plus 180 dollars en frais de sortie de données vers les utilisateurs ouest-africains. La même plateforme, après migration vers Hetzner Object Storage en 2025, paye 23 euros par mois pour le stockage et 0 euros en frais de sortie — Hetzner ne facture pas l’egress dans des limites raisonnables. Économie annuelle : 2 500 dollars, sans dégradation de la qualité de service. Hetzner Object Storage, lancé fin 2024 avec compatibilité S3 native, est devenu en 2026 l’option la plus pragmatique pour les SaaS européens et africains qui veulent maîtriser leur facture cloud sans sacrifier les fonctionnalités. Ce pilier détaille le service, son tarif, son intégration avec Node, Deno, Bun, ses limites par rapport à AWS S3, et les patterns de production éprouvés sur plusieurs projets clients ouest-africains.

Pourquoi Hetzner Object Storage en 2026

Trois caractéristiques distinguent Hetzner Object Storage face à la concurrence. Premièrement, la tarification est radicalement simple : 5,99 euros par To stocké par mois, sans frais d’egress dans les limites du fair-use, sans frais de requête API, sans frais de classes de stockage différenciées. Cette simplicité contraste avec AWS S3 qui empile stockage, classes (Standard, IA, Glacier), egress facturé par Go, requêtes facturées au million, et qui peut surprendre avec des factures inattendues. Pour une PME ou un freelance ouest-africain, prévoir un budget cloud devient possible avec Hetzner — la facture est connue à l’avance.

Deuxièmement, la compatibilité S3 est de première classe. Tous les clients S3 standards (AWS SDK pour Node, Boto3 Python, Minio CLI, rclone) fonctionnent sans modification : il suffit de pointer l’endpoint vers fsn1.your-objectstorage.com ou nbg1.your-objectstorage.com. La migration depuis AWS S3 prend quelques heures pour la configuration et le temps de copier les données — pas de réécriture du code applicatif. Cette compatibilité est un argument décisif pour les équipes qui veulent migrer sans risque technique.

Troisièmement, les datacenters Hetzner FSN1 (Falkenstein) et NBG1 (Nuremberg) offrent une latence acceptable depuis l’Afrique de l’Ouest (90-130 ms depuis Dakar, Abidjan, Bamako). Pour les workloads non temps-réel (sauvegardes, archives, médias servis avec CDN), cette latence n’est pas un problème. Pour les workloads sensibles, on couple Hetzner Object Storage avec Cloudflare en frontal qui cache et sert depuis les PoPs locaux.

Créer un bucket et premières configurations

Dans la console Hetzner Cloud, on accède à la section Object Storage et on crée un nouveau bucket. Quatre choix essentiels lors de la création. La région : FSN1 (Falkenstein) ou NBG1 (Nuremberg) sont équivalentes en latence depuis l’Afrique de l’Ouest, choisir l’une ou l’autre selon la proximité avec d’autres ressources Hetzner du même projet. Le nom du bucket : globalement unique dans toute l’infrastructure Hetzner, choisir un nom descriptif avec préfixe organisation (par exemple itskills-medias-prod). La visibilité : private par défaut (recommandé), avec accès via signed URLs pour les médias publics. Les credentials : un access key ID et secret access key sont générés à la création, à stocker dans un gestionnaire de secrets (jamais dans le code).

Une fois le bucket créé, l’endpoint d’accès est https://nom-du-bucket.fsn1.your-objectstorage.com pour FSN1. Cette URL accepte toutes les opérations S3 standard : PutObject, GetObject, DeleteObject, ListObjectsV2, etc. Les buckets supportent jusqu’à plusieurs millions d’objets sans dégradation de performance, et chaque objet peut atteindre 5 Tio. Pour la majorité des cas d’usage SaaS (médias utilisateurs, sauvegardes, archives), ces limites sont largement suffisantes.

Intégration avec AWS SDK pour Node ou Bun

L’AWS SDK v3 pour JavaScript fonctionne sans modification avec Hetzner Object Storage. Configuration en cinq lignes : on définit l’endpoint, la région (toujours auto ou la région Hetzner), les credentials, et le mode forcé path-style.

import { S3Client, PutObjectCommand, GetObjectCommand } from '@aws-sdk/client-s3';

const s3 = new S3Client({
  region: 'fsn1',
  endpoint: 'https://fsn1.your-objectstorage.com',
  credentials: {
    accessKeyId: process.env.HETZNER_ACCESS_KEY!,
    secretAccessKey: process.env.HETZNER_SECRET_KEY!
  },
  forcePathStyle: false
});

await s3.send(new PutObjectCommand({
  Bucket: 'itskills-medias-prod',
  Key: 'photos/profil-aissatou.jpg',
  Body: fileBuffer,
  ContentType: 'image/jpeg'
}));

Pour les opérations courantes (upload, download, suppression, liste), l’API est identique à AWS S3. Les développeurs habitués à S3 sont productifs immédiatement. Pour les fonctionnalités avancées (multipart upload pour gros fichiers, presigned URLs pour téléchargement direct depuis le navigateur), les commandes AWS SDK fonctionnent également sans modification.

URLs pré-signées pour upload direct

Le pattern recommandé pour permettre aux utilisateurs d’uploader des fichiers volumineux (photos, documents PDF) sans charger le serveur applicatif est l’upload direct via URL pré-signée. Le serveur génère une URL signée valable quelques minutes, le navigateur l’utilise pour POST le fichier directement vers Hetzner Object Storage. Cette architecture libère le serveur applicatif de la responsabilité du transfert de fichier et scale parfaitement.

import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
import { PutObjectCommand } from '@aws-sdk/client-s3';

const url = await getSignedUrl(
  s3,
  new PutObjectCommand({ Bucket: 'itskills-uploads', Key: 'tmp/' + crypto.randomUUID() }),
  { expiresIn: 600 } // 10 minutes
);

// Côté client : POST direct vers cette URL avec le fichier en body
return c.json({ uploadUrl: url });

Pour la sécurité, on conditionne la signature à l’authentification utilisateur (l’endpoint qui génère l’URL exige un JWT valide), on limite la durée de vie de l’URL à 5-15 minutes, et on impose un Content-Type prédéfini pour empêcher l’utilisateur d’uploader autre chose qu’un type de fichier autorisé. Ces précautions standards bloquent les abus tout en gardant l’expérience utilisateur fluide.

Servir avec Cloudflare en frontal

Pour servir des médias publics (avatars, photos de produits e-commerce) avec une latence basse en Afrique de l’Ouest, on configure Cloudflare en frontal du bucket Hetzner. Le DNS pointe le sous-domaine medias.example.sn vers Hetzner via un CNAME proxifié sous Cloudflare. Le mode SSL Full strict assure le chiffrement de bout en bout. La règle de cache « Cache Everything » stocke chaque média sur les PoPs Cloudflare (incluant Lagos, Accra) pour un service quasi instantané aux utilisateurs ouest-africains.

Cette architecture combine le meilleur des deux mondes : Hetzner Object Storage comme source de vérité avec sa tarification simple et sans frais d’egress, Cloudflare comme couche de distribution avec son réseau global. Coût total : 6 euros par To chez Hetzner plus 0 dollars chez Cloudflare (plan Free largement suffisant). Comparé à AWS S3 + CloudFront qui coûterait 30-50 dollars par To, l’économie est massive et permet aux SaaS ouest-africains de servir des médias riches sans exploser leur budget.

Sauvegardes automatisées avec rclone

Hetzner Object Storage est un excellent destinataire de sauvegardes pour les bases de données, les logs, et les configurations. L’outil rclone, gratuit et open-source, automatise les sauvegardes avec chiffrement, déduplication, et versioning optionnel. Configuration en quelques lignes pour pointer rclone vers Hetzner et lancer un backup nocturne via cron.

# ~/.config/rclone/rclone.conf
[hetzner-storage]
type = s3
provider = Other
endpoint = fsn1.your-objectstorage.com
region = fsn1
access_key_id = ...
secret_access_key = ...

# Cron nocturne
0 3 * * * pg_dump app_db | gzip | rclone rcat hetzner-storage:backups/db-$(date +%Y%m%d).sql.gz

Pour les sauvegardes critiques, on combine plusieurs destinataires : Hetzner Object Storage primaire, Backblaze B2 secondaire pour résilience géographique. Le coût marginal Backblaze B2 (6 dollars par To stocké) double la facture stockage mais protège contre une panne majeure ou une perte de compte Hetzner. Pour les SaaS ouest-africains qui traitent des données sensibles, cette redondance est une discipline professionnelle élémentaire.

Comparatif Hetzner Object Storage vs AWS S3 vs R2 vs Backblaze B2

Critère Hetzner AWS S3 Cloudflare R2 Backblaze B2
Stockage / To / mois 5,99 € ~22 $ 15 $ 6 $
Egress / Go 0 € (fair use) 0,09 $ 0 $ 0,01 $
API requests 0 € 0,005 $/1k 0 $ 0,004 $/1k
S3 compatibilité Native Référence Très bonne Native
Latence depuis Dakar ~100 ms ~115 ms ~40 ms (Lagos PoP) ~150 ms
Datacenter Afrique Non (FRA1, NBG1) Non Lagos, Accra Non

Pour les workloads servis avec Cloudflare en frontal, Hetzner ou R2 offrent les meilleures économies. R2 brille quand on est déjà dans l’écosystème Cloudflare. Hetzner brille quand on veut le coût stockage le plus bas possible et qu’on accepte la latence acceptable au lieu de optimale. Pour les SaaS ouest-africains qui combinent edge et stockage durable, l’architecture R2 + edge ou Hetzner + Cloudflare donnent des résultats comparables avec des compromis différents.

Adaptation au contexte ouest-africain

Trois aspects pratiques. Premièrement, l’absence de frais d’egress chez Hetzner est particulièrement bénéfique pour les plateformes qui servent beaucoup de médias aux utilisateurs ouest-africains. Une plateforme e-learning qui livre des vidéos de cours, une boutique e-commerce avec des photos de produits, ou une application sociale avec des avatars peuvent tabler sur un coût mensuel prévisible et bas. Deuxièmement, le paiement Hetzner depuis l’Afrique se fait via Wave Visa, Wise, ou virement SEPA pour les structures qui ont un compte européen — voir notre tutoriel Paiement Hetzner depuis l’Afrique. Troisièmement, pour les agences qui hébergent plusieurs projets clients, un seul compte Hetzner avec plusieurs buckets isolés permet de mutualiser les frais fixes tout en gardant les données clients séparées et auditables.

Pour les structures qui démarrent avec un budget serré, le seuil de fair use Hetzner sur l’egress (généralement 1 To par mois pour les premiers 100 Go de stockage) couvre largement les besoins d’un MVP ou d’un produit en lancement. Au-delà, la facturation reste très inférieure aux concurrents AWS ou Google Cloud. Cette frugalité change la trajectoire économique des SaaS ouest-africains qui peuvent atteindre la rentabilité sans avoir à optimiser drastiquement leurs coûts cloud dès le départ.

Erreurs fréquentes

Erreur Cause Solution
« SignatureDoesNotMatch » Region incorrecte ou endpoint mauvais Vérifier endpoint et region exact (fsn1, nbg1)
Lenteur d’upload depuis Afrique Connectivité variable Multipart upload pour gros fichiers, retry exponentiel
Coûts inattendus malgré tarif simple Dépassement fair use egress Configurer Cloudflare en frontal pour cacher
Bucket non accessible publiquement ACL trop restrictive Configurer policy « AllowPublicRead » ou utiliser presigned URLs
Compatibilité SDK obscure SDK trop ancien ou trop récent AWS SDK v3, pas v2 (legacy)

Pour aller plus loin

Tutoriels du cluster Hetzner Object Storage :

Articles connexes : Hetzner Cloud Afrique · Paiement Hetzner · Backups Hetzner Cloud.

Documentation : Hetzner Object Storage docs.

FAQ

Quelle est la limite réelle du fair use egress Hetzner ?
Officiellement non communiquée précisément, mais en pratique 1-2 To par mois pour un petit bucket sont sans problème. Au-delà, Hetzner contacte le client pour discuter avant de facturer.

Hetzner Object Storage supporte-t-il le versioning ?
Pas en 2026 nativement. Pour le versioning, on encode soi-même le versioning dans la clé (photos/v1/aissatou.jpg) ou on utilise une solution externe comme Backblaze B2 qui le supporte.

Peut-on auto-héberger MinIO comme alternative ?
Oui sur un VPS Hetzner avec disques attachés. Coût similaire à Hetzner Object Storage si on utilise un seul Volume Storage. Préférer Hetzner managed sauf besoin spécifique.

La latence depuis Lagos est-elle vraiment de 40 ms via R2 ?
Pour les requêtes servies depuis le PoP Lagos de Cloudflare, oui. Pour les premières requêtes (cache miss) qui retournent à l’origine R2, la latence remonte à 80-100 ms.

Sécurité IAM et gestion des accès

Pour les équipes qui ont plusieurs développeurs ou plusieurs services accédant au même bucket, la gestion fine des accès devient critique. Hetzner Object Storage supporte les policies S3 standards qui permettent de définir précisément qui peut faire quoi sur quel chemin du bucket. Le principe d’usage : créer plusieurs paires de credentials (access key + secret) avec des permissions limitées, plutôt que partager une clé maître. Une paire pour le service web qui upload, une autre pour le worker qui traite, une autre encore pour la sauvegarde nocturne — chacune avec uniquement les droits nécessaires à sa mission.

Cette discipline IAM réduit considérablement la surface d’attaque. Si un service compromis voit ses credentials volés, l’attaquant ne peut pas accéder à tout le bucket. Pour les SaaS ouest-africains qui traitent des données sensibles soumises à des exigences réglementaires (santé, finance), cette segmentation des accès est une bonne pratique standard à appliquer dès le démarrage du projet. Le coût est nul puisqu’Hetzner ne facture pas la création de clés supplémentaires.

Optimisations de performance

Trois optimisations améliorent significativement les performances perçues. Premièrement, le multipart upload pour les fichiers de plus de 100 Mo : on découpe en chunks de 5 à 10 Mo qui s’envoient en parallèle, ce qui multiplie la vitesse de transfert sur les connexions instables courantes en Afrique de l’Ouest. Le SDK AWS gère cela automatiquement avec Upload de @aws-sdk/lib-storage. Deuxièmement, le caching côté client : les médias publics sont cachés agressivement par le navigateur via les headers Cache-Control: public, max-age=31536000, immutable sur les médias versionnés par hash. Cette stratégie évite les requêtes répétées au serveur pour des fichiers qui ne changent jamais.

Troisièmement, l’optimisation des images avant upload : pour les photos de produits ou avatars, redimensionner et compresser au moment de l’upload (côté navigateur via Canvas API ou côté serveur via sharp) divise la taille stockée par 5 à 10. Ces économies se cumulent : moins d’espace utilisé chez Hetzner, moins de bande passante consommée par les utilisateurs, expérience utilisateur plus rapide. Pour les SaaS qui visent la rentabilité, ces optimisations triviales représentent souvent des centaines d’euros d’économies annuelles.

Synthèse et recommandation

Hetzner Object Storage est en 2026 le meilleur choix pour les SaaS ouest-africains qui veulent stocker des fichiers (médias utilisateurs, sauvegardes, archives) à coût maîtrisé sans sacrifier la compatibilité S3 ni la fiabilité. Le tarif simple et l’absence de frais d’egress changent la prévisibilité budgétaire — argument décisif pour les structures qui démarrent. La compatibilité S3 native garantit qu’on peut migrer vers ou depuis AWS S3, R2, ou tout autre fournisseur compatible sans réécriture, ce qui réduit le risque de vendor lock-in. Combiné à Cloudflare en frontal pour la latence et à Backblaze B2 pour la résilience géographique, l’architecture résultante rivalise avec n’importe quel cloud premier ordre à une fraction du coût.

Pour démarrer, le conseil pratique est d’ouvrir un bucket de test avec quelques euros de crédit, de migrer un sous-ensemble non-critique de fichiers (par exemple les avatars utilisateurs), et de mesurer concrètement les économies sur un mois. Cette expérimentation valide que la solution convient à votre cas d’usage spécifique avant d’engager une migration à plus large échelle. La majorité des projets que nous accompagnons réalisent au moins 50 % d’économies sur le poste stockage cloud après migration vers Hetzner Object Storage.

Cas d’usage typiques en 2026

Plusieurs patterns d’usage récurrents émergent chez nos clients ouest-africains qui adoptent Hetzner Object Storage. Le premier cas est le stockage des médias utilisateurs pour une application SaaS — photos de profil, justificatifs téléchargés, documents PDF. Volume typique : 50 à 500 Go selon la taille de l’application. Hetzner sert ce besoin pour 2 à 30 euros par mois, contre 50 à 300 euros chez AWS S3 + CloudFront. Le deuxième cas est l’archivage des sauvegardes de bases de données — typiquement 10 à 200 Go de dumps PostgreSQL compressés cumulés sur les versions retenues. La rétention de 90 jours sur Hetzner coûte environ 1 à 12 euros par mois. Le troisième cas est le stockage de logs applicatifs — souvent surdimensionné chez AWS via CloudWatch payant, déplacé sur Hetzner avec rotation locale puis archive nocturne pour 70 % d’économies.

Ces trois cas représentent à eux seuls 80 % des usages typiques d’object storage pour un SaaS B2B classique. Hetzner couvre parfaitement ces besoins. Pour des cas plus avancés (analytics big data, machine learning sur datasets massifs, distribution mondiale temps-réel), des solutions plus spécialisées peuvent être préférables — mais ces besoins restent rares dans le périmètre de la majorité des startups et agences ouest-africaines en 2026.

Conformité et localisation des données

Pour les SaaS ouest-africains soumis à des exigences réglementaires de localisation des données (loi sénégalaise sur la protection des données personnelles 2008-12, futures évolutions BCEAO et CIMA), Hetzner Object Storage en datacenter Falkenstein ou Nuremberg est en territoire UE et bénéficie du cadre RGPD européen. Pour les données strictement non-EU-exportables, Hetzner ne convient pas et il faut chercher un fournisseur localement présent en Afrique de l’Ouest — options encore limitées en 2026 mais émergentes (Africloud, certains datacenters MTN). Pour les données qui peuvent quitter l’Afrique sous réserve de garanties contractuelles, Hetzner avec ses Standard Contractual Clauses signées convient parfaitement.

Pour la documentation conformité, Hetzner fournit publiquement leurs certifications ISO 27001 et leurs DPA (Data Processing Agreement) signables en ligne. Cette documentation s’intègre directement dans le dossier de conformité présenté aux régulateurs, aux clients institutionnels, ou aux auditeurs. Comparé à AWS qui demande souvent une coordination plus complexe via des comptes Enterprise, Hetzner reste accessible aux structures de toutes tailles avec une posture conformité solide.

Quand ne pas choisir Hetzner Object Storage

Trois cas où d’autres solutions restent préférables. Premièrement, si l’application doit absolument respecter la localisation africaine des données (réglementation stricte ou contrainte client institutionnel), il faut explorer les fournisseurs ayant une présence physique en Afrique de l’Ouest — Hetzner étant européen. Deuxièmement, pour les workloads avec un trafic massif servi globalement sans Cloudflare en frontal, R2 ou un CDN avec PoP réparti reste plus performant. Troisièmement, pour l’écosystème AWS profondément intégré (Lambda, DynamoDB, services managés), rester chez S3 simplifie la gestion globale même si le coût est plus élevé.

Pour les autres cas — la grande majorité des SaaS B2B et B2C ouest-africains en croissance — Hetzner Object Storage est l’option par défaut la plus économique et la plus simple. Sa stabilité et sa fiabilité sont éprouvées depuis fin 2024, les avis utilisateurs sont massivement positifs, et son écosystème (Cloudflare frontal, Backblaze B2 secondaire) permet de construire une architecture résiliente sans complexité excessive.

Évolution prévue du service en 2026-2027

Hetzner annonce régulièrement des améliorations sur Object Storage. Les évolutions attendues à court terme incluent le support du versioning natif des objets, l’ajout de classes de stockage économiques pour les archives froides, et potentiellement l’ouverture d’un troisième datacenter (Helsinki ou Singapour) pour étendre la couverture géographique. Pour les utilisateurs ouest-africains, la priorité serait l’ouverture d’un PoP plus proche — les rumeurs persistantes d’un datacenter Hetzner en Afrique du Nord ou du Sud restent à confirmer mais transformeraient l’expérience de service.

En attendant ces évolutions, l’architecture Hetzner FRA1 + Cloudflare frontal couvre largement les besoins de la majorité des projets. Les retours d’expérience accumulés sur deux ans en production démontrent la fiabilité du service et la qualité du support technique en cas d’incident rare. Pour les SaaS qui investissent dans une infrastructure cloud durable, Hetzner est aujourd’hui un choix sensé qui combine économie, simplicité, et solidité.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité