wazroth
(wazroth)
1
別のDiscourseフォーラムで、@samさんがここにバグレポートを作成するように勧めてくれました。CNNの記事のワンボクシング(oneboxing)に、少なくとも断続的な失敗があるようです。これは注目度の高いサイトなので、かなり重要だと思われます。レート制限の問題なのか、ユーザーエージェントのブロックなのか、Discourse側の問題なのか、oEmbedデータの実際の問題なのか、あるいは何なのかは不明です。
例:
(新規ユーザーのため、追加の例は削除しました。)
「いいね!」 4
Lilly
(Lillian Louis)
2
@wazroth さん、Metaへようこそ:wave:
レポートありがとうございます。
はい、開発インスタンスとホストサイトで再現できました。CNNのリンクがまったくワンボックス化されません。
「いいね!」 3
sam
(Sam Saffron)
3
@wazroth様、ありがとうございます。デバッグは今後4週間以内に実施される予定です。
「いいね!」 4
tgxworld
(Alan Tan)
7
@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
sam
(Sam Saffron)
8
うーん、それと… 続きですが、必要な情報はすべて最初の2MBに含まれているのではないでしょうか?
「いいね!」 2
Richie
(Richie Rich)
10
この max_download_kb 設定はハードコードされていますか?管理メニューから変更できるものではありませんか?
tgxworld
(Alan Tan)
11
onebox エンジンによります。Amazon のような一部の onebox エンジンは、<body> 内の商品の価格などの特定の情報をスクレイピングします。opengraph エンジンの場合、理論上は <head> 内の <meta> のような特定のタグのみが必要になるはずです。
最も効率的な方法は、応答をストリーミングしながら必要な情報を解析することですが、すべてのエンジンを変更するにはかなりの労力がかかり、はるかに複雑なソリューションになるでしょう。
実際、HTML 応答の解析に使用している Nokogiri は、不完全な HTML テキストを解析できるため、応答が大きすぎる場合に応答全体を破棄する必要はありません。応答本文を 2MB に制限し続け、応答サイズがそれを超えた場合は、最初の 2MB を解析するように試みればよいと思います。
「いいね!」 1
tgxworld
(Alan Tan)
12
これは、以下のリンクで修正されました。
ローカル環境では、このトピックで報告された「問題のある」URLは、ワンボックスを試みた際にエラーが表示されなくなりました。
「いいね!」 5
Richie
(Richie Rich)
13
素晴らしい、ありがとうございます @tgxworld 
「いいね!」 2