Bonjour - J’essaie de télécharger un fichier CSV contenant plusieurs balises, mais à chaque fois, je reçois le message d’erreur suivant : « Désolé, une erreur s’est produite lors du téléchargement de ce fichier. Veuillez réessayer. »
Les journaux du panneau d’administration indiquent :
Message (8 copies signalées)
Échec du traitement correct de la réponse détournée : Échec de la validation : Le nom est invalide
Backtrace
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:80:in `raise_validation_error'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:53:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `block in save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:278:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/suppressor.rb:48:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/persistence.rb:55:in `create!'
J’ai essayé de créer une balise factice, c’est-à-dire une seule entrée dans le fichier CSV (par exemple, le mot java), mais j’obtiens le même message d’erreur.
Pour information, j’ai installé Discourse sur DigitalOcean en suivant le guide d’installation officiel, et tout le reste fonctionne correctement.
Merci @codinghorror - n’hésitez pas à me faire savoir si vous trouvez quelque chose. Si cela peut aider, j’exécute la version 2.5.0.beta7 ( 14dc6f350e ) sur un Droplet avec 4 Go de RAM et 80 Go de SSD.
En dehors de cela, j’ai installé les plugins akismet, formatting-toolbar et discourse-voting.
Je viens de tester cela sur try.discourse.org. J’ai utilisé un éditeur de texte simple pour créer un fichier CSV nommé tags.csv contenant uniquement le mot java, et j’ai pu utiliser l’outil d’importation en masse de balises pour ajouter la nouvelle balise sans problème.
Le site try.discourse.org dispose d’akismet et de discourse-voting, et je doute fortement que le plugin formatting-toolbar entre en conflit de quelque manière que ce soit pour produire l’erreur que vous rencontrez.
Pouvez-vous télécharger des fichiers sans problème dans d’autres contextes (publications, thèmes, etc.) ?
Le téléchargement échoue toujours. Cela pourrait-il être lié aux permissions ? Je suis l’administrateur du site, donc je devrais normalement avoir toutes les permissions nécessaires pour effectuer cette action.
Cette fois, j’utilise la version 2.5.0.beta7 ( 70e50a2255 ).
Faites-moi savoir s’il y a autre chose que vous aimeriez que j’essaie. Merci !
Si le fichier d’étiquettes s’appelle tags-1.csv, je reçois une erreur de téléchargement. Si je nomme le fichier tags.csv, alors le téléchargement des étiquettes réussit
Cette nomenclature est-elle requise par Discourse (et j’ai manqué de la lire), ou s’agit-il d’un bug ?
Hmm, j’ai essayé de renommer mon fichier en tags-1.csv et je n’ai toujours pas pu reproduire l’erreur. Si vous le renommez à nouveau en tags-1.csv et tentez de le télécharger, l’erreur se produit-elle à nouveau ? Je me demande s’il y avait autre chose dans votre nom de fichier original et que le changement en tags.csv l’a corrigé d’une manière ou d’une autre.
Non, ça ne fonctionne toujours pas pour moi. Tout ce que je fais sur mon Mac, c’est :
$ vi tags-1.csv
Ensuite : i pour entrer en mode édition java esc pour quitter le mode édition :wq et Entrée pour enregistrer et quitter.
C’est tout. Cela échoue aussi. Au début, je pensais que cela pouvait être lié à une exportation Excel vers CSV, mais même l’édition en ligne de commande pose problème.
Je vais continuer pour l’instant avec tags.csv, mais si vous pensez que c’est important et que vous souhaitez que je lance des tests, je serai ravi de le faire. La même chose s’est produite sur deux serveurs différents avec des installations fraîches, ce qui m’inquiétait.
Je vois un autre problème (encore une fois, je ne suis pas sûr que cela soit lié à mon environnement).
Mes tags sont une liste de langages de programmation. J’avais c++ et c# dans cette liste, et une fois que je les ai supprimés de tags.csv, le téléchargement en masse a réussi. Je me demande si cela a un rapport avec le fait que le tag se termine par un caractère spécial. Encore une fois, cela pourrait être juste moi
Oui ! C’est définitivement le problème. Je pensais que nous ne travaillions qu’avec le mot java dans le fichier, étant donné votre dernier message. Vous devriez utiliser quelque chose comme cpp, c-sharp, etc.
Oui, je pense que ce serait idéal. L’erreur actuelle ne donne pas vraiment à l’utilisateur beaucoup d’éléments pour comprendre :
Désolé, une erreur s’est produite lors du téléchargement de ce fichier. Veuillez réessayer.
Note intéressante dont je n’étais pas conscient : lors de la tentative de création d’une balise dans des contextes normaux de création ou de modification de sujets, il semble que nous supprimions silencieusement tous les symboles. Ainsi, entrer C++ suggérerait C comme balise.
Je comptais modifier le texte (pour indiquer la possibilité de balises invalides), mais je pense que ce texte s’applique à tous les téléchargements, donc il ne serait pas toujours exact.
Une solution rapide, selon moi, serait d’ajouter quelques phrases à ce sujet dans la section Tags des Paramètres d’administration, décrivant les restrictions relatives aux noms de balises.
Oui, cela semble être le cas. J’ai trouvé l’endroit où l’erreur générique est levée dans le code de téléchargement des balises, donc je vais essayer de créer une erreur plus spécifique pour ce cas dans une PR.