Impossible de modifier les sujets avec image avec le backend S3

Bonjour à tous,

Nous sommes tombés sur un problème étrange.

Notre configuration :

  • Discourse : 2.8.0.beta2
  • S3 : Minio
  • CDN : Myra

La configuration S3 est la suivante :

root@assets-prod-app01:~# sudo -u minio mc admin policy info minio readwrite-discourse
{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Effect": "Allow",
   "Action": [
    "s3:ListBucketMultipartUploads",
    "s3:GetBucketLocation",
    "s3:ListBucket"
   ],
   "Resource": [
    "arn:aws:s3:::discourse"
   ]
  },
  {
   "Effect": "Allow",
   "Action": [
    "s3:*"
   ],
   "Resource": [
    "arn:aws:s3:::discourse/*"
   ]
  }
 ]
}

Cependant, nous obtenons systématiquement le message d’erreur suivant lors de l’édition :

Dans les fichiers de logs, nous trouvons :

Aws::S3::Errors::NotImplemented (Un en-tête que vous avez fourni implique une fonctionnalité non implémentée)
lib/file_store/s3_store.rb:279:in `update_ACL'
lib/file_store/s3_store.rb:209:in `update_upload_ACL'
...

Y a-t-il un paramètre que nous n’aurions pas pris en compte, ou Minio n’est-il pas compatible avec Discourse ?

Toute suggestion serait la bienvenue, car nous commençons à subir une certaine pression de la part de nos utilisateurs :frowning:

Merci d’avance.

Ce paramètre est-il si rare ?

Je vous serais reconnaissant de m’orienter sur ce qu’il faudrait examiner plus en détail ou sur ce qu’il faudrait modifier ? @Falco Pour l’instant, nous sommes un peu bloqués… :frowning:

Avez-vous activé le paramètre du site secure_uploads ? Cela ne fonctionnera du tout avec MinIO.

Bonjour @Falco,

malheureusement pas…

La configuration S3 est-elle conforme à la documentation disponible sur Utiliser le stockage d’objets pour les téléversements (S3 et clones) ?

Oui, vraiment lettre par lettre :slight_smile:

Désolé de vous déranger, mais auriez-vous un moment pour vérifier ?

Salut, tu aurais des idées ? Désolé de te déranger…

Bonjour,

Aujourd’hui, j’ai effectué la mise à jour vers la version 2.8.0.beta2, mais la même erreur se produit :


Il suffit de sélectionner secure_media, et Minio fonctionne à nouveau.

image

@pmusaraj / @martin il semble qu’il s’agisse d’une régression causée par

qui n’a pas pris en compte les mêmes éléments qui ont été corrigés par

https://github.com/discourse/discourse/commit/5c5d8a307a816afcda4b97eecf49b836fc9ecb01

Ainsi, post_creator effectue :

et models/post :

1 « J'aime »

Une correction a déjà été apportée pour des raisons de performance, ce qui devrait également résoudre votre problème :

Bien que je prévoyais de modifier le job pour qu’il se termine rapidement si les médias sécurisés sont désactivés.

En fait, je ne peux pas faire cela car nous souhaitons que les pièces jointes aux messages soient marquées comme non sécurisées si les médias sécurisés sont désactivés ou si le message a été déplacé vers une autre catégorie. À la place, j’ajouterai une correction pour capturer l’erreur Aws::S3::Errors::NotImplemented lorsque nous exécutons Discourse.store.update_upload_ACL(self). Ainsi, les clients qui ne prennent pas en charge les ACL privées ne devraient rencontrer aucun problème.

Édition : J’ai fusionné cette correction aujourd’hui, elle devrait vous aider : FIX: Handle storage providers not implementing ACLs by martin-brennan · Pull Request #13675 · discourse/discourse · GitHub. Je pense que nous publierons une nouvelle version bêta la semaine prochaine.

3 « J'aime »

Ce sujet a été automatiquement fermé après 3 jours. De nouvelles réponses ne sont plus autorisées.