読者です 読者をやめる 読者になる 読者になる

Qiitaの記事に埋め込んだ画像の開放タイミングについて

Qiitaの記事に画像を埋め込むとqiita.com内のURLへのリンクが生成されると思いきや、S3内のURLへのリンクが原文に張られます。執筆者がアップロードした画像はS3に送られて、そのURLを使って画像表示をしているようです。ここまではいいのですが*1、問題は画像を消すときです。どうやってるんでしょうね。

素直に考えると次のような実装が考えられます。

  • ユーザごと、あるいは記事ごとに、過去にアップロードした画像リストを管理している
  • 記事公開/下書き保存のタイミングでフックを仕掛けて、画像リンクへの参照カウンタを増減させる
  • 参照カウンタが0になったら画像データを削除する

これを確かめるために、

  1. とある既存記事に埋め込まれている適当な画像へのリンクを削除
  2. 記事を更新(ここで記事から画像は消える)
  3. 再度記事を編集して、1で削除したリンクを挿入
  4. 記事を更新

という操作をすると、再び画像が表示されました。どうやら、参照カウンタによって画像データの開放時期を管理しているとしても、開放のタイミングは記事公開/下書き保存の時ではないようです(少なくとも毎回はやっていない)。定期的にバッチ処理で開放しているのか、はたまた参照カウンタじゃない全然別の方法で管理しているのか。

中の人ではないのでこれ以上の真相は闇の中ですが、知らなくても困るものでもないので、とりあえずはここまで。

*1:商用webサービス内のURLにむき出しのs3.amazonaws.comを含むURLが出てきたのは若干びっくりしましたが…