Hey Leute,
ich hoffe, das ist der richtige Ort, um zu fragen. Ich arbeite daran, eine Reihe von Daten aus einem anderen Forum in unsere neue Discourse-Instanz zu importieren (interne Wissensbeiträge, die wir migrieren möchten).
Ich habe unsere alten Daten schön in einer Reihe von JSON-Strukturen verpackt, aber ich stecke beim Hochladen der verschiedenen Bilder fest, die mit den alten Beiträgen verknüpft sind.
Ich verwende das discourse_api-Gem und hatte bisher hervorragende Erfolge, obwohl mir bewusst ist, dass es unvollständig ist. Ich kann ein Bild erfolgreich hochladen, wenn dieses Bild irgendwo gehostet ist, wie folgt:
client.upload_file({'user_id':24,url:'http://valid.url.here/foo.jpg','synchronous':true})
aber ich scheitere, wenn ich versuche, ein Bild hochzuladen, das sich auf meinem lokalen Rechner befindet:
client.upload_file({'user_id':24,file:'/local/path/to/image/foo.jpg','synchronous':true})
…das oben genannte führt zu folgendem Fehler:
DiscourseApi::UnprocessableEntity: {"failed"=>"FAILED",
"message"=>"undefined method 'tempfile' for
#<String:0x00007f409d2fa398>"} from /home/user/.rvm/gems/
ruby-2.3.7/gems/discourse_api-0.36.0/lib/discourse_api/
client.rb:154:in 'handle_error'
Ich habe mich ausreichend umgeschaut und festgestellt, dass ich wahrscheinlich etwas Base64-Magie oder Ähnliches anwenden muss, damit meine Anfrage korrekt formatiert ist (ich erkenne auch, dass die Upload-Methode des Ruby-Gems diesen Upload-Typ vielleicht gar nicht unterstützen kann – und wenn das so ist, ist das auch in Ordnung).
Eigentlich suche ich nur nach einer Anleitung, um zu sehen, ob andere bereits auf dieses Problem gestoßen sind und ob ich vielleicht am falschen Ende der Leine ziehe. Vielen Dank im Voraus und alles Gute ![]()