CNNのワンボクシングの失敗

別のDiscourseフォーラムで、@samさんがここにバグレポートを作成するように勧めてくれました。CNNの記事のワンボクシング(oneboxing)に、少なくとも断続的な失敗があるようです。これは注目度の高いサイトなので、かなり重要だと思われます。レート制限の問題なのか、ユーザーエージェントのブロックなのか、Discourse側の問題なのか、oEmbedデータの実際の問題なのか、あるいは何なのかは不明です。

例:

(新規ユーザーのため、追加の例は削除しました。)

「いいね!」 4

@wazroth さん、Metaへようこそ:wave: :slight_smile: レポートありがとうございます。

はい、開発インスタンスとホストサイトで再現できました。CNNのリンクがまったくワンボックス化されません。

「いいね!」 3

@wazroth様、ありがとうございます。デバッグは今後4週間以内に実施される予定です。

「いいね!」 4

@ted max_download_kb を 10MB から 2MB に削減した理由を覚えていますか?これは SECURITY: Prevent Onebox cache overflow by limiting downloads and URL… · discourse/discourse@95a82d6 · GitHub のコミットで行われました。

CNN のリンクが onebox されないのは、レスポンスサイズが 2.7MB で、現在の制限である 2MB を超えているためです。デフォルトサイズを引き上げることでこれを修正できますが、そうすることのリスクをよりよく理解したいと思います。

「いいね!」 4

うーん、それと… 続きですが、必要な情報はすべて最初の2MBに含まれているのではないでしょうか?

「いいね!」 2

関連項目 https://meta.discourse.org/t/amazon-onebox-broken/307120、関連性がある可能性はありますか?

この max_download_kb 設定はハードコードされていますか?管理メニューから変更できるものではありませんか?

onebox エンジンによります。Amazon のような一部の onebox エンジンは、<body> 内の商品の価格などの特定の情報をスクレイピングします。opengraph エンジンの場合、理論上は <head> 内の <meta> のような特定のタグのみが必要になるはずです。

最も効率的な方法は、応答をストリーミングしながら必要な情報を解析することですが、すべてのエンジンを変更するにはかなりの労力がかかり、はるかに複雑なソリューションになるでしょう。

実際、HTML 応答の解析に使用している Nokogiri は、不完全な HTML テキストを解析できるため、応答が大きすぎる場合に応答全体を破棄する必要はありません。応答本文を 2MB に制限し続け、応答サイズがそれを超えた場合は、最初の 2MB を解析するように試みればよいと思います。

「いいね!」 1

これは、以下のリンクで修正されました。

ローカル環境では、このトピックで報告された「問題のある」URLは、ワンボックスを試みた際にエラーが表示されなくなりました。

「いいね!」 5

素晴らしい、ありがとうございます @tgxworld :smiley:

「いいね!」 2