Après m’être cogné la tête contre le mur pendant 3 heures à essayer de faire fonctionner ma configuration AWS S3 avec Discourse sur une instance AWS Lightsail, je suis fermement convaincu qu’un tutoriel simple et direct à ce sujet serait le bienvenu. Il y a TOUTES sortes de pièges à explorer avec cela. Je veux dire, je n’ai aucun problème à créer un bucket qui peut récupérer des fichiers à distance en utilisant l’URL AWS S3 fournie, mais une fois que vous introduisez le CDN, le Endpoint S3 (que l’interface utilisateur des paramètres indique clairement pouvoir être vide, mais qui, lors de la tentative de téléchargement, renvoie le message interne « L’Endpoint ne peut pas être vide »), et des choses aussi basiques que le niveau d’autorisation dont vous avez RÉELLEMENT besoin si vous utilisez un CDN via CloudFront d’Amazon.
C’est beaucoup. J’ai parcouru Internet et rien d’aussi proche n’existe, et certainement rien que j’ai pu trouver qui soit à jour avec Discourse aujourd’hui.
Merci pour tout conseil.
Je pense que mon principal obstacle pour le moment concerne les autorisations, du moins du point de vue de Discourse demandant l’ID de clé (Key ID) et le secret de clé (Key Secret). J’ai un utilisateur dans IAM pour cela, mais il n’y a RIEN dans les informations des Buckets S3 qui semble associer cet utilisateur à ce bucket, donc je n’ai aucune idée si c’est là que se situe la déconnexion. Honnêtement, j’utilise LightSail et AWS depuis plus de 8 ans, mais cette zone S3 est rédigée dans une sorte d’obscurcissement de style UX de développeur avec 50 façons différentes de faire les choses. Pas du tout intuitif.
Salut Jay. Oui, j’ai regardé celui-là plusieurs fois maintenant. Étant donné qu’il date de 2020, il contient des choses comme les paramètres DISCOURSE_S3_REGION, mais la zone d’administration n’a pas un tel paramètre.
Aussi… ne devrais-je pas rake mes anciennes données APRÈS avoir configuré S3 correctement et vérifié que cela fonctionne ?
C’est ce genre de choses dont je parle. Les paramètres dans Discourse font beaucoup d’hypothèses sur le fait qu’un utilisateur connaisse AWS, le shell et Discourse comme le ferait un développeur.
Mais vous montrez que vous ne suivez pas ces instructions.
C’est pourquoi vous devez suivre ces instructions et ne pas le faire dans l’interface utilisateur (UX).
Ce sont les instructions à suivre.
Et ne manquez pas la partie que vous ajoutez au fichier yml pour que les ressources soient téléchargées sur S3.
Je le ferais sur un site de test afin de ne pas gâcher votre site en direct.
Oui. Ajoutez les paramètres S3 à l’environnement dans le fichier yml, reconstruisez, puis testez qu’ils fonctionnent, puis exécutez la tâche rake. Ils doivent être définis là, pas dans la base de données. Je ne suis pas sûr pourquoi ils ne les ont pas masqués de l’interface utilisateur.
Merci pour ces liens. Le premier lien que vous avez posté contient un autre lien dans la zone AWS ( Set up file and image uploads to S3 ) datant de 2013, donc je me heurte immédiatement à eux qui disent d’insérer telle politique de compartiment (qui semble obsolète) alors que le CDN AWS via Cloudfront a déjà remplacé la politique par la sienne. La changer ? La laisser ? C’est ce genre de bêtises dont je parle. Ugggg !
Ce ne sont pas vraiment les paramètres « Remplir le blanc » dans app.yml ou les paramètres d’administration qui posent problème. C’est plutôt une combinaison de la façon dont ces paramètres interagissent avec le bucket créé ou le CDN, etc. C’est donc le côté Amazon qui a besoin d’être éclairci. Je veux dire, je comprends, ce n’est pas Discourse, mais ce serait vraiment utile pour les utilisateurs de DISCOURSE qui fonctionnent réellement via S3. J’espère que cela a du sens.
Je vois. Cela fait un moment que je n’ai pas configuré de bucket AWS. Cette partie peut être plus compliquée, mais ce n’est pas ce que vous avez montré dans votre publication.
Mais cela aussi est assez simple, vous collez les éléments et ensuite, si vous avez des erreurs, vous pouvez les corriger.
C’est le seul problème que vous avez décrit.
Comment avez-vous configuré le bucket ? Quelles autorisations avez-vous données à l’utilisateur ? Avez-vous généré les clés ? Quelles erreurs avez-vous obtenues (mais je pensais que vous aviez dit que vous aviez ajouté une image à une publication et que cela avait fonctionné ?)