Le WordPress d'aujourd'hui, décodé pour les développeurs

Outils & workflow

Stocker les médias d’un site immobilier sur Scaleway plutôt que sur le disque

Les photos haute résolution d'une agence immobilière saturent le disque du serveur mutualisé. Voici comment déporter la bibliothèque de médias vers un stockage objet Scaleway.

Par Clément Hadrot • 18 juillet 2025 • 4 min de lecture • Aucun commentaire
Stocker les médias d'un site immobilier sur Scaleway plutôt que sur le disque

« Disk quota exceeded » : ce message, apparu un vendredi soir dans les journaux d’erreur d’une agence immobilière qui vient de mettre en ligne trois nouveaux mandats avec chacun une trentaine de photos en haute résolution, résume un problème récurrent sur ce type de site. Chaque bien ajouté génère des dizaines de fichiers, chacun redimensionné en plusieurs tailles par WordPress, et le dossier wp-content/uploads grossit plus vite que prévu au moment de choisir l’offre d’hébergement initiale.

Cette recette décrit le déport de cette bibliothèque de médias vers un stockage objet Scaleway, compatible avec le protocole S3. Elle ne traite pas de la génération des différentes tailles d’images par WordPress, qui continue de fonctionner normalement une fois le stockage déporté.

Le problème posé par le stockage local sur ce type de site

Un serveur mutualisé ou une petite instance dédiée est dimensionné pour exécuter PHP et servir des pages, pas pour accumuler indéfiniment des fichiers volumineux. Sur un site immobilier, chaque annonce publiée ajoute plusieurs dizaines de mégaoctets de photographies, multipliées par les tailles générées automatiquement par WordPress (miniature, taille moyenne, grande taille, taille définie par le thème). Sur deux ans d’activité, cette accumulation peut représenter plusieurs dizaines de gigaoctets, largement supérieurs à la capacité d’une offre d’hébergement standard pensée pour le code et la base de données, pas pour la médiathèque.

Mettre en place le stockage objet

Scaleway propose un service de stockage objet compatible avec l’API S3, ce qui permet de réutiliser des extensions WordPress déjà conçues pour ce protocole standard plutôt que de développer une intégration propriétaire. La première étape consiste à créer un panier de stockage dédié, puis à générer une paire de clés d’accès depuis la console Scaleway.

L'essentiel à retenir : Le disque du serveur n'est pas fait pour stocker des milliers de photos HD ; Un stockage objet compatible S3 découple la capacité du serveur applicatif ; La bascule se fait sans changer les URL existantes visibles publiquement
define('AS3CF_SETTINGS', serialize([
    'provider'      => 'aws',
    'access-key-id' => getenv('SCALEWAY_ACCESS_KEY'),
    'secret-access-key' => getenv('SCALEWAY_SECRET_KEY'),
]));

Ces identifiants ne doivent jamais figurer en clair dans un fichier versionné ; ils sont lus depuis des variables d’environnement définies au niveau du serveur ou du gestionnaire de secrets utilisé pour le déploiement.

Configurer l’extension de déport des médias

Une fois le panier créé et les clés générées, l’extension de déport des médias se configure avec l’identifiant de la région Scaleway concernée et l’URL du point de terminaison compatible S3, différente de celle d’Amazon Web Services :

  • Point de terminaison personnalisé pointant vers l’infrastructure Scaleway plutôt que vers l’URL par défaut d’AWS.
  • Copie des fichiers déjà existants du dossier uploads vers le panier, opération qui peut prendre plusieurs heures selon le volume déjà accumulé.
  • Réécriture des URL des médias dans le contenu pour pointer vers le panier de stockage, tout en conservant la même structure de chemin afin que les liens déjà partagés ou indexés restent valides.
  • Option de suppression des fichiers locaux une fois la copie vérifiée, pour libérer effectivement l’espace disque du serveur.

Vérifier la bascule avant de supprimer les fichiers locaux

La prudence impose de ne jamais supprimer les fichiers locaux avant d’avoir vérifié que l’ensemble des tailles d’images se chargent correctement depuis le panier de stockage, sur plusieurs pages représentatives du site : la page d’accueil, une fiche de bien avec galerie photo, et une page de recherche affichant des miniatures. Un test insuffisant à cette étape est la cause la plus fréquente d’images cassées après une migration de ce type.

ÉtapePoint de vigilance
Création du panierChoisir une région proche des visiteurs principaux
Génération des clésRestreindre les droits au panier concerné uniquement
Copie des fichiers existantsVérifier l’intégrité avant toute suppression locale
Réécriture des URLConserver la structure de chemin d’origine

Une habitude prise après plusieurs migrations de ce type : toujours conserver les fichiers locaux au moins deux semaines après la bascule effective, même une fois la copie vérifiée, le temps de croiser d’éventuels signalements de visiteurs.

En résumé

Déporter la médiathèque d’un site immobilier vers un stockage objet Scaleway résout durablement le problème de saturation disque, tout en gardant un serveur applicatif léger et rapide à sauvegarder. La bascule demande de la rigueur sur la vérification des URL existantes avant toute suppression locale, mais une fois en place, chaque nouveau bien publié n’ajoute plus aucune pression sur la capacité du serveur qui exécute WordPress.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi