Demande concernant la prise en charge du stockage Amazon S3 par Discourse

Je voudrais poser une question concernant un problème technique lié à la prise en charge du stockage Amazon S3 par Discourse.

J’ai trouvé un post de forum datant de 2013 qui discutait déjà de la prise en charge du S3 par Discourse. J’ai également trouvé quelques fils de discussion liés à la décharge CDN, mais il ne semble pas y avoir beaucoup d’informations détaillées sur ce sujet.

J’ai construit mon propre forum Discourse et j’ai été très persévérant pour activer les téléchargements de vidéos. J’ai eu de nombreuses idées, mais comme je ne suis pas programmeur, il a été difficile de les mettre en pratique - j’ai toujours besoin de l’aide d’autres personnes pour progresser petit à petit.

Discourse lui-même prend en charge les petits téléchargements de vidéos, et j’ai déjà activé cette fonctionnalité. Cependant, l’architecture de Discourse n’est pas vraiment adaptée pour gérer efficacement les téléchargements de vidéos. Après de nombreuses recherches, j’ai découvert qu’il est en fait possible d’utiliser le stockage Amazon S3 avec une décharge CDN, ou alternativement, le stockage S3 avec une configuration de cache proxy.

En effet, j’ai déjà demandé à un ami de m’aider à configurer le stockage S3 et la mise en cache proxy. (Pour clarification, je n’ai pas envisagé d’utiliser un CDN en raison de préoccupations liées aux coûts - le service CDN d’Amazon S3 peut être assez cher.)

Je rencontre maintenant un problème : lors des tests, même si le stockage S3 a été correctement configuré, et qu’en théorie tous les téléchargements du forum devraient aller directement vers S3, les fichiers vidéo ne peuvent toujours pas être téléchargés vers le stockage S3.

Quelqu’un pourrait-il expliquer ce qui pourrait être mal configuré ou ce qui pourrait causer ce problème ?

Merci

Que se passe-t-il à la place ? Obtenez-vous un message d’erreur ?

Vous voudrez peut-être également vérifier les paramètres « taille maximale des pièces jointes (Ko) » et « extensions autorisées », tous deux dans Paramètres du site - Fichiers.

Veuillez noter que même avec CDN et S3, cette configuration n’est toujours pas très adaptée aux vidéos, car il n’y a pas de transcodage pour offrir le meilleur ajustement à la bande passante et à la résolution des clients.

3 « J'aime »


Merci beaucoup pour votre réponse. Voici la situation :
Actuellement, les images de mon forum peuvent être téléchargées avec succès sur S3, mais les vidéos ne le peuvent pas. C’est vraiment déroutant pour moi.

Bien que je comprenne que S3 ne soit peut-être pas encore idéal pour gérer les vidéos, le contenu principal du forum est du texte et des images. La fonctionnalité vidéo sert juste à répondre aux besoins de certains utilisateurs, et les vidéos elles-mêmes ne seront pas très volumineuses. Merci beaucoup pour le rappel.

Vous avez oublié de répondre à ma question :slight_smile:

3 « J'aime »

Le CDN d’Amazon est moins cher que la sortie des buckets S3. Vous voulez absolument un CDN devant votre bucket S3.

Je soupçonne que l’erreur dont vous ne nous avez pas parlé concerne des vidéos trop volumineuses. Il existe des paramètres pour modifier cela, mais il serait peut-être préférable d’activer « Activer les téléchargements directs S3 ».

3 « J'aime »


Lorsque j’essaie de téléverser une vidéo sur mon forum, le message suivant s’affiche directement :

« Désolé, ce fichier est trop volumineux (taille maximale : 50 Mo). Pourquoi ne pas téléverser votre fichier volumineux sur un service de partage de fichiers dans le cloud, puis coller le lien ? »

Cependant, ma vidéo ne fait que 10 Mo. Actuellement, j’utilise le stockage S3 avec CloudFront CDN pour la diffusion.

Je trouve le dépannage très difficile. Pourriez-vous fournir la procédure correcte en supposant qu’aucune opération préalable n’a été effectuée ? Je demanderai à mon ami de suivre les étapes correctes et de réessayer.

Bonjour, merci pour votre réponse.

J’ai déjà demandé à mon ami de passer de la méthode de stockage S+ avec mise en cache proxy à la méthode de stockage S3 + livraison CDN CloudFront. Cependant, cela semble avoir échoué, et je n’en connais pas encore la raison. Je me demandais donc si vous pouviez fournir les commandes d’exécution exactes pour que mon ami puisse réessayer.

De plus, je suis très attaché à la fonctionnalité vidéo sur mon forum pour la commodité de mes utilisateurs. J’ai donc eu une nouvelle idée et j’aimerais savoir si elle est réalisable. J’espère vraiment avoir votre avis.

Tout d’abord, je dois expliquer que je n’ai absolument aucune connaissance en codage ou en programmation. Ma spécialisation universitaire était le japonais, donc à part l’apprentissage de la langue japonaise, je n’ai vraiment aucune compréhension du code. Si certaines de mes idées semblent naïves à première vue, veuillez me pardonner.

Grâce à l’arrêt du serveur que j’avais loué pour mon forum, j’ai dû investir des efforts pour le reconstruire, ce qui m’a permis d’apprendre les points clés du stockage S3 et du CDN CloudFront. Ensuite, j’ai appliqué ces connaissances et je me suis demandé s’il existait d’autres fournisseurs de services de stockage et de CDN. J’ai consulté ChatGPT et j’ai été ravi d’obtenir les réponses que je souhaitais.

En fait, j’avais toujours voulu créer un site de vidéos, mais j’ai rapidement abandonné à cause des coûts de stockage. Maintenant que je connais la nouvelle solution, j’ai ravivé l’idée de créer un site de vidéos pour prendre en charge les vidéos du forum Discourse.

Sur recommandation de GPT, j’ai appris que je pouvais utiliser soit PeerTube, soit MediaCMS pour le système de site de vidéos - les deux sont excellents.

J’ai actuellement deux points de doute :

Premier point : Les deux systèmes de site de vidéos peuvent prendre en charge le stockage Backblaze B2 avec la livraison CDN Cloudflare. Comme les vidéos ne sont pas stockées sur mon propre disque dur, la lecture des vidéos du site de vidéos appelle déjà l’API Backblaze B2. Ce que je veux, c’est que le forum soit connecté au site de vidéos, non pas en postant des liens, mais en utilisant le bouton de téléchargement du forum pour appeler directement mon site de vidéos MediaCMS (par exemple) comme source. Cela impliquerait deux appels d’API :

  1. Le forum appelle le site de vidéos MediaCMS.
  2. Le site de vidéos MediaCMS appelle le stockage Backblaze B2.

J’aimerais savoir si des appels d’API répétés de ce type sont techniquement réalisables.

Deuxième point : Les systèmes de forum et de site de vidéos peuvent-ils partager le système de compte utilisateur, afin que les utilisateurs puissent utiliser le même compte ? Cela affecte le fonctionnement des appels d’API.

  • Option 1 : En tant qu’administrateur du site de vidéos, j’enregistre un compte administrateur lié au forum. Lorsque le forum télécharge une vidéo via l’API, c’est techniquement l’administrateur qui la télécharge sur le site MediaCMS.
  • Option 2 : Avec un système de compte utilisateur partagé, le téléchargement de vidéos est effectué par le compte forum de l’utilisateur, et via l’API, il est synchronisé sur le site MediaCMS. L’utilisateur peut alors voir la vidéo téléchargée sous son propre compte sur le site de vidéos.

J’ai consulté GPT à propos de ces approches, et GPT a généralement donné des retours positifs. Cependant, malheureusement, lors d’une utilisation répétée, j’ai constaté que GPT peut fournir des conseils et de l’aide pour des décisions de haut niveau, mais pour des réponses détaillées, il peut parfois être inexact. Comme je n’ai moi-même aucune connaissance en codage, je ne suis pas sûr si ces idées sont vraiment réalisables.

Si possible, j’apprécierais grandement si vous pouviez indiquer quelles parties de ces idées sont réalisables et lesquelles pourraient ne pas l’être.

Ils devraient probablement participer à ce sujet, alors. Ont-ils suivi Configurer un fournisseur de stockage d’objets compatible S3 pour les téléchargements et mis les paramètres dans le fichier ymll et ajouté la partie qui envoie les actifs vers S3 ?

Peut-être que le navigateur ne communique pas la taille de manière appropriée.

Avez-vous essayé cela ?


Bonjour. Voici la situation :
Les vidéos de moins de 10 Mo peuvent être téléchargées sur mon propre serveur, mais les fichiers vidéo eux-mêmes ne peuvent pas être téléchargés sur S3.
Lors du téléchargement d’une vidéo, le système capture automatiquement la première image comme miniature, et l’image miniature peut être téléchargée sur S3.

Cependant, pour les vidéos de plus de 10 Mo, rien ne peut être téléchargé.

Si votre ami avait suivi Configurer un fournisseur de stockage d’objets compatible S3 pour les téléchargements, vous ne verriez pas enable_s3_uploads. Il n’est pas clair si la définition de ces paramètres dans la base de données plutôt que dans l’ENV fait partie du problème.

Ce n’est pas la même chose que Enable direct S3 uploads . C’est « Activer les téléchargements directs S3 ».

Vous devez également modifier Max image size KB et Max attachment size KB .

Mais j’ai changé ma taille de téléchargement maximale à 100 Mo et j’ai essayé de télécharger un fichier de 37 Mo et j’ai obtenu l’erreur « le fichier est trop volumineux », vous avez donc peut-être raison de penser qu’il y a un bug. Je n’ai pas mis à jour le site où j’ai testé depuis un certain temps.

1 « J'aime »

L’avez-vous également modifié dans app.yml ?

Merci beaucoup pour toute votre aide.
Il a dit qu’il avait suivi les instructions dans Configure an S3 compatible object storage provider for uploads, mais cela n’a pas fonctionné.
Cependant, tout à l’heure, après avoir fait ce que vous avez suggéré et changé la taille maximale du fichier téléchargé à 100 Mo, la vidéo a été téléchargée avec succès dans le stockage S3.
Merci beaucoup !

Alors il l’a mal fait et aurait dû demander de l’aide. Il a probablement omis la partie qui télécharge les ressources vers S3.

Super ! Il y a un sujet quelque part sur la façon d’augmenter cette limite de 100 Mo également.

1 « J'aime »