d.ourdomain.com (notre Discourse est sous un sous-domaine)
○ Avec la configuration dans DO CP > Réseau > Domaines et dans Cloudflare comme alias vers ours.nyc3.digitaloceanspaces.com.
○ Erreur lors du téléchargement d’une image… Échec de l’ouverture de la connexion TCP vers uploads.d.ourdomain.com:443 (getaddrinfo: Nom ou service inconnu)
Mais mes paramètres ne s’affichent pas dans l’interface d’administration, donc je pense que cela n’est pas obsolète et qu’il s’agit simplement d’obtenir la bonne combinaison de paramètres.
J’ai vu ceci…
…mais la zone d’administration ne me permet pas de laisser “s3 upload bucket” vide, donc je n’étais pas sûr si c’était lié. Cela semblait également ne concerner que l’utilisation d’AWS S3. J’ai essayé de créer un dossier dans mon DO Space et d’utiliser ce nom de dossier. J’ai essayé d’utiliser un nom différent pour un dossier qui n’existait pas, au cas où il devrait en créer un. Rien de tout cela n’a fonctionné.
J’ai vu ceci…
…mais je suis loin d’être un expert, donc je l’ai évité.
À ce stade, je n’ai plus d’idées à essayer et je ne sais pas si je suis proche et qu’il me faut juste la bonne configuration de paramètres ou si je manque complètement quelque chose et que je ne suis pas du tout proche.
Non, ce n’est pas le cas. Bien que vous puissiez configurer les points d’accès S3 dans l’interface utilisateur, nous n’avons testé et validé qu’en utilisant les clones S3, comme l’offre Digital Ocean, lors de la configuration dans le fichier app.yml.
Je ne vois pas de section dans app.yml pour les paramètres DISCOURSE_S3. Dois-je simplement créer une ligne pour chacun ? Ou est-ce ce que font les commandes sudo ?
Je ne suis pas tout à fait sûr de l’endroit où exécuter ou placer ces commandes sudo. Je ne sais pas s’il s’agit d’un élément de ligne de commande unique à ajouter ou si c’est quelque chose qui doit être inclus dans app.yml afin qu’il soit toujours pris en compte.
Les commandes sudo vont-elles dans la zone app.yml ou seulement les lignes de réglage DISCOURSE_S3 ?
Dois-je simplement laisser cela vide avec DO Spaces ? DISCOURSE_S3_REGION :
Dois-je avoir un CDN ? Nous avons très peu de trafic. Petit groupe. J’essaie vraiment de limiter les éléments mobiles si possible.
Existe-t-il une solution à ce problème ? J’ai obtenu la même erreur en essayant d’utiliser Oracle Cloud Storage.
J’ai suivi le wiki en configurant dans app.yml. J’ai essayé d’utiliser s3cmd manuellement pour une connexion correcte, bien sûr. Mais lors du téléchargement d’une image dans un post, j’ai obtenu le même message d’erreur.
Ensuite, j’obtiens exactement le même message d’erreur dans l’outil s3cmd que celui affiché par Discourse :
Veuillez patienter, tentative de lister tous les buckets...
ERREUR : Échec du test : [SSL: CERTIFICATE_VERIFY_FAILED] échec de la vérification du certificat SSL : le certificat n'est pas valide pour 'objectstorage.ap-singapore-1.oci.oraclecloud.com'. (_ssl.c:1007)
Après de nombreuses tentatives, j’obtiens toujours le même message d’erreur. J’ai vérifié manuellement le certificat et le nom d’hôte, utilisé le bon format pour obtenir le bon certificat visuellement, mais sans succès.
Mon endpoint : \u003cnamespace\u003e.compat.objectstorage.\u003cregion\u003e.oraclecloud.com
Le CN du certificat : *.compat.objectstorage.\u003cregion\u003e.oraclecloud.com
Je peux me connecter avec l’outil s3cmd. Mais je ne peux pas configurer le téléversement S3 pour discourse avec la même configuration.
C’est une mauvaise idée car cela saperait de nombreuses protections offertes par les certificats X509.
Pouvez-vous montrer quels sont vos paramètres non secrets ici ? Veuillez noter qu’Oracle Cloud n’est pas pris en charge, mais nous jetterons un coup d’œil rapide pour voir si quelque chose ne va pas manifestement.
Oracle Cloud Storage a un certain format pour l’adresse du point de terminaison. Mais quel que soit le format que j’ai essayé, le même message d’erreur que celui que j’ai montré ci-dessus.
OK, j’ai ajouté un binding.pry au début de ssl_socket_connect et voici ce que je vois en essayant d’utiliser ces paramètres :
→ DISCOURSE_USE_S3=true DISCOURSE_S3_REGION=ap-singapore-1 DISCOURSE_S3_ENDPOINT=https://axhjdarc4cuy.compat.objectstorage.ap-singapore-1.oraclecloud.com DISCOURSE_S3_ACCESS_KEY_ID=foo DISCOURSE_S3_SECRET_ACCESS_KEY=bar DISCOURSE_S3_BUCKET=bucketname bin/rails c
Loading development environment (Rails 7.0.7)
[1] pry(main)› s3 = S3Helper.build_from_config; s3.list
From: /home/michael/.rvm/gems/ruby-3.2.2@discourse/gems/net-protocol-0.2.2/lib/net/protocol.rb:42 Net::Protocol#ssl_socket_connect:
40: def ssl_socket_connect(s, timeout)
41: binding.pry
=> 42: if timeout
43: while true
44: raise Net::OpenTimeout if timeout <= 0
45: start = Process.clock_gettime Process::CLOCK_MONOTONIC
46: # to_io is required because SSLSocket doesn't have wait_readable yet
47: case s.connect_nonblock(exception: false)
48: when :wait_readable; s.to_io.wait_readable(timeout)
49: when :wait_writable; s.to_io.wait_writable(timeout)
50: else; break
51: end
52: timeout -= Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
53: end
54: else
55: s.connect
56: end
57: end
[1] pry(#<Net::HTTP>)› s.hostname
=> "bucketname.axhjdarc4cuy.compat.objectstorage.ap-singapore-1.oraclecloud.com"
donc le nom d’hôte réel auquel on se connecte est bucketname.axhjdarc4cuy.compat.objectstorage.ap-singapore-1.oraclecloud.com, ce qui ne correspond pas à *.compat.objectstorage.ap-singapore-1.oraclecloud.com, donc l’erreur est correcte.
Utilisez l’accès basé sur les chemins dans votre application. L’accès de style hôte virtuel (accès à un compartiment en tant que {bucketnamespace}.compat.objectstorage.{region}.oraclecloud.com [sic]) n’est pas pris en charge.
Inversement, Discourse ne prend en charge que l’accès de style hôte virtuel ({bucketname}.{namespace}.compat.objectstorage.{region}.oraclecloud.com.).
Nous avons supprimé le paramètre qui aurait pu le faire fonctionner il y a quelque temps, car il n’était pas bien pris en charge (voir le message du commit).
Faire fonctionner cela ne sera pas simple et nécessitera un développement et des tests complexes pour ajouter cette prise en charge.
Merci, mais je n’ai jamais réussi à résoudre le problème.
J’ai trouvé ce à quoi il faisait référence, mais ensuite, lorsque je copie et colle du texte, il inverse la casse. J’abandonne et je n’y suis pas revenu. J’essaierai peut-être à nouveau l’année prochaine.
J’espérais que quelqu’un trouverait une solution entre-temps et documenterait mieux la configuration pour correspondre à mes plans.
J’avais ce problème et je l’ai résolu. Ma solution était que lorsque je l’ai configuré, mon serveur de messagerie n’était pas vérifié SSL, mais mon fournisseur de domaine m’a donné un serveur de messagerie vérifié SSL, alors je les ai remplacés.