## 事象 以下のURLを[[Bluesky]]の投稿欄に入力しても、[[OGP]]画像が認識されない。 ``` https://minerva.mamansoft.net/%F0%9F%93%97Obsidian%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AC%E3%82%B7%E3%83%94/%F0%9F%93%97%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%881%E7%99%BA%E3%81%A7%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%82%92%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%9F%E3%81%84 ``` 該当ページの[[coverプロパティ (Obsidian)|coverプロパティ]]には値を指定している。 ``` 📗Obsidian逆引きレシピ/attachments/obsidian-recipe.webp ``` [[Discord]]では[[OGP]]画像が期待通り表示される。 ### 詳細 [[Chrome devtools]]で `Network` を確認したところ、以下のリクエストが400エラーになっていた。 ``` https://cardyb.bsky.app/v1/image?url=https%3A%2F%2Fpublish-01.obsidian.md%2Faccess%2F35d05cd1bf5cc500e11cc8ba57daaf88%2F%25F0%259F%2593%2597Obsidian%25E9%2580%2586%25E5%25BC%2595%25E3%2581%258D%25E3%2583%25AC%25E3%2582%25B7%25E3%2583%2594%2Fattachments%2Fobsidian-recipe.webp ``` ブラウザで直接上記URLを叩くと、400エラーで[[JSON]]が返却された。 ```json { "error": "Unable to serve image from URL", "likely_type": "", "url": "", "title": "", "description": "", "image": "" } ``` `cardy.bsky.app/v1/image` の `url` に指定された値を[[URLデコード]]してアクセスすると画像が表示される。 ``` https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/obsidian-recipe.webp ``` ### 環境 | 対象 | バージョン | | ------------ | ---------- | | [[macOS]] | 15.7.1 | | [[Obsidian]] | 1.9.14 | ## 原因 不明。。だが、[[Bluesky]]の `cardyb.bsky.app/v1/image` APIの不具合である可能性が高そう。 > [!left-bubble] ![[chappy.webp]] > 結論: **Bluesky側(cardyb)の取得・変換バグ**。 > 理由: 両画像とも > > - `200 / image/webp / Content-Length あり / Range=206 可 / Cloudflare` を満たす > > - WebPは同じVP8X拡張+EXIFのみ。ICC/Alpha/Animationなし > > - それでも cardyb へのリクエストは「失敗URL=400」「成功URL=200」 > > > よって配信経路やヘッダの不備ではなく、**cardybのデコード/変換処理が特定のWebPバイナリにだけ失敗**しています。 なお、今回のケースでは以下のような状態だった。 ```bash IMG='https://cardyb.bsky.app/v1/image?url=https%3A%2F%2Fpublish-01.obsidian.md%2Faccess%2F35d05cd1bf5cc500e11cc8ba57daaf88%2F%25F0%259F%2593%2597Obsidian%25E9%2580%2586%25E5%25BC%2595%25E3%2581%258D%25E3%2583%25AC%25E3%2582%25B7%25E3%2583%2594%2Fattachments%2Fobsidian-recipe.webp' # 結果は200 curl -sSIL "$IMG" -H 'Accept: image/*' -o /dev/null -D - # 結果は206 curl -sS -D - -o /dev/null --range 0-1 "$IMG" ``` ## 回避策 画像の[[URL]]を変更... つまり、[[Vault]]内での画像パスを変更する。今回は以下のように変更した。 ```diff - 📗Obsidian逆引きレシピ/attachments/obsidian-recipe.webp + Notes/attachments/obsidian-recipe.webp ``` > [!info] > 他にも、`Notes/attachments/obsidian-recipe.jpg` という同名で拡張子の異なるファイルも削除した。これが解決の要因になったかは不明。 ## 解決方法 > [!unresolved] >