web-dev-qa-db-fra.com

Multisite, télécharger des images directement sur Amazon S3

J'ai créé un réseau multisite, mais j'ai remarqué que les gens téléchargeaient beaucoup de fichiers images qui obstruaient mon espace serveur.

Existe-t-il un moyen de modifier le thème de réseau par défaut (les utilisateurs ne peuvent utiliser qu'un seul thème standard) afin que toutes les images soient téléchargées sur mon compte S3 puis affichées comme d'habitude dans le programme de téléchargement de média Wordpress?

Je veux pouvoir le faire automatiquement, par opposition à ce que tous les utilisateurs de mon réseau aient à installer un plugin manuellement, car certains d'entre eux ne sont pas vraiment férus de technologie.

4
Dean Elliott

Si vous utilisez un serveur Linux dédié et que vous êtes à l'aise avec la ligne de commande, vous pouvez installer s3fs . C'est un programme qui vous permet de monter votre Amazon s3 Bucket en tant que répertoire sur votre serveur.

Dans l'environnement multisite standard, les téléchargements de média de tous les sites, à l'exception du site principal, sont stockés dans le répertoire blogs.dir, à l'intérieur du répertoire wp-content. J'exécute actuellement une installation multisite où blogs.dir IS mon compartiment s3 monté. Voici un aperçu ...

  1. Renommez le dossier blogs.dir en _blogs.dir. (Remarque: tous les fichiers multimédias multisites seront temporairement inaccessibles).
  2. Créez un nouveau répertoire avec le nom blogs.dir.
  3. Installez et utilisez s3fs pour monter votre compartiment s3 dans le répertoire blogs.dir.
  4. Copiez le contenu du dossier _blogs.dir dans le nouveau blogs.dir. Cela copiera tous les fichiers et dossiers directement dans votre s3 seau. (Cela peut prendre un certain temps en fonction du nombre d'images).
  5. Une fois l’opération terminée, allez sur la page d’accueil de l’un de vos sites utilisateurs (et non de votre site principal) et assurez-vous que Wordpress est capable de lire et d’afficher les images).
  6. Assurez-vous que le compartiment est monté au démarrage au cas où vous deviez redémarrer votre serveur. Sous Linux, ceci est souvent accompli en ajoutant une commande s3fs au fichier/etc/fstab.

Comme pour tout, il y a du pour et du contre à cette configuration.

Les avantages sont que chaque fois qu'un utilisateur télécharge un fichier multimédia sur son multisite, il est directement stocké sur votre compartiment s3. Et lorsque les médias sont appelés, ils sont retirés du panier. De plus, lorsqu'un utilisateur modifie une image dans l'administrateur Wordpress, les modifications sont à nouveau stockées directement dans votre compartiment s3.

Les inconvénients sont que cela rend le téléchargement de la nouvelle interface de fichier un peu plus lent sur le backend, et cela peut également ralentir la lecture des fichiers (à moins que vous ne puissiez utiliser les règles de réécriture .htaccess dans Apache pour rediriger l'URL du média directement vers s3, ce qui est possible, mais dépasse le cadre de cette réponse).

J'espère que cela t'aides. Visitez le s3fs pour obtenir de la documentation sur l’installation et l’utilisation de s3fs.

6
Mark