リンクされた画像の一部が表示されない/破損として表示される

Discourse の API を通じて約 15,000 件のニュース記事を移行しているのですが、これらのトピックには画像へのリンクが含まれています。画像はすべて BLOB ストレージにアップロードされ、公的にアクセス可能です。

ほとんどのトピックでは、画像が正しく表示され、期待通りにホットリンク経由でダウンロードされて Discourse へアップロードされます。しかし、一部の場合はリンクとして表示されるだけで画像化されなかったり、何らかの理由で壊れた画像として表示されてしまいます。

具体的には以下の通りです。

リンクのままである場合:

壊れて表示される場合:

壊れた場合、編集画面では以下のように表示されます:

設定は以下の通りです:

  • 移行テスト用の Virgin Discourse インストール
  • 画像の S3 ストレージ

ユーザーとして投稿を作成して画像をアップロードする際には問題が発生しませんが、API を通じて大量の投稿を連続して移行する場合(skip_validations=true パラメータを使用)にのみ問題が発生しているようです。現時点では、最大 1,000 トピックを移行した後にリセットして再度開始しています。

何が原因として考えられるでしょうか?あるいは診断のためのヒントはありますか?Hotlink 関連の Sidekiq ジョブはすべて期待通りにスケジュールされ、実行されているようです。

rake posts:rebake を実行しても改善されません。

「いいね!」 4

小さな管理レンチ付きの再構築された HTML オプションはいかがですか?

image

「いいね!」 3

ファイルの拡張子が二重になっています(.jpeg.jpg) rejected されたすべてのファイルがこの状態でしょうか?

二重拡張子のファイルが正常に処理された例はありますか?

「いいね!」 4

ロバートさん、ありがとうございます。試した最初のいくつかは機能しています。しかし、また最初からやり直し、つまりホットリンクされた画像をレンダリングしてから、それをダウンロードしてアップロードする手順に戻ってしまいます。

これを自動化できるかどうか確認する必要がありますが、そもそもなぜ失敗するのかという根本的な原因には届きません。

「いいね!」 2

いいえ、拡張子が重複した画像は少数であり、すべての失敗の原因ではありません。ただし、「HTML の再構築」オプションでもこれらのケースは修正されます。

「いいね!」 2

それは素晴らしいですね、おめでとうございます!:tada: 私も以前、同様の問題に直面した際、ここで親切な方々から教えていただいたことを学びました。それをあなたにお伝えできて嬉しいです。:smiling_face_with_sunglasses:

「いいね!」 1

はい、API の /posts/{num}/rebake を使って移行された投稿をすべて修正しました。奇妙なことに、コンテナ内の rake posts:rebake コマンドは機能しませんでした。

リベイクの API 呼び出しを自動化したところ、画像アップロードの失敗率が約 80% であることが判明しました。これはかなり驚きです。

「いいね!」 4

結局、これは信頼できるものではないことがわかりました。いくつかの投稿では機能しましたが、すべてでは機能しませんでした。画像のアップロードを再度試みる必要があります。以前もリクエストがフリーズする問題に直面しました。ただ、その際 skip_validations パラメータを試したかどうかはわかりません。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

この投稿には、壊れた画像を修正するのに役立つ可能性のある提案がいくつかあります: Rebake with rails command or rake task doesn't work, but rebuilding HTML does. Why? - #12 by RGJ.

「いいね!」 5