Bilder laden nach Merge nicht mehr, obwohl Datei und Upload-Modell existieren

Ich habe Merge two Discourse sites into one verwendet und es hat größtenteils funktioniert, aber Bilder von der zweiten Seite werden nicht angezeigt.

Ich kann etwas wie das hier tun:

p=Post.find_by(topic_id: 222435, post_number: 11)
short_url=p.raw.match(/(upload:\\/\\/.*?)\\)/)[1]
up=Upload.sha1_from_short_url(short_url)

und up.url sieht aus wie /uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg und cd /shared; ls uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg findet die Datei.

Aber https://host/uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg gibt mir einen 404 von nginx.

Es scheint, als ob NGINX nett wäre und mir das Bild geben würde, wenn der Upload existiert und die Datei existiert. Was übersehe ich?

Für einige Bilder habe ich dieses Problem “gelöst”, indem ich die URL des Bildes von der Testseite eingefügt habe, was dann das Bild generiert, das dann in einen Upload umgewandelt wird (denselben Upload, den ich gerade finde, soweit ich das beurteilen kann) und dann, nachdem ich den Beitrag neu erstellt habe, wird er das Bild haben.

Ich habe versucht, etwas wie das hier zu tun:

f=File.open('/shared/uploads/default/original/2X/9/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg')
upload = UploadCreator.new(f, 'upload.jpeg').create_for(-1)

um dasselbe zu tun, wie das Einfügen der Remote-URL des Bildes, aber das funktioniert auch nicht.

Hallo @RGJ. Haben Sie einen Hinweis, wie ich diese Bilder, die (scheinbar?) in der Datenbank und im Dateisystem vorhanden sind, beim erneuten Backen rendern lassen kann?

Ich hasse das Debuggen solcher Fehler.
Meistens führe ich den Code im Controller einfach manuell in einer Rails-Konsole aus.

Diesmal vermute ich, dass der 404 von Zeile 111 stammen könnte.

Was gibt Discourse.store.list_missing_uploads(skip_optimized: true) bei Ihnen zurück?

1 „Gefällt mir“

Da sind wir uns ja ähnlich. Aber ich bin mir ziemlich sicher, dass du darin besser bist als ich. Vielen Dank für deine Hinweise.

Das versuche ich gerade.

Das scheint eine gute Vermutung zu sein. Danke!

nil. skip_optimized: false – dasselbe.

Ich habe es geschafft, die Uploads für einen Beitrag zu reparieren, aber anscheinend habe ich mir keine guten Notizen gemacht. :person_shrugging: Aber ich habe eine Menge Dinge getan, um dorthin zu gelangen; ich habe zumindest die Hoffnung, dass es möglich ist.

1 „Gefällt mir“