やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

はてなAPIでブログ記事を取得して変更されたものはDBを更新する

前回のつづき。ブログの更新をDBに反映させる。

成果物

GitHubHatena.Blog.API.Entries.Pagenation.Marge.201703051054

開発環境

はてなブログAtomPub - Hatena Developer Center

前回まで

http://ytyaru.hatenablog.com/entry/2017/07/02
http://ytyaru.hatenablog.com/entry/2017/07/05
http://ytyaru.hatenablog.com/entry/2017/07/17

気になる点

過去の記事も更新されている可能性があるため、全件取得せねばならない。バックアップ頻度や記事数が多いとサーバ負荷がかかる。

  1. 過去ブログの更新もすべて確認する
  2. 過去ブログの更新はすべて確認しない(DB内の最新以降の日付のものを挿入するだけ)
  3. 過去ブログの更新対象はDB確認日時以降のupdatedをもつ記事とする

B,Cのように選択できたほうがサーバ負荷をかけずに済むかもしれない。しかし、更新した記事があったことを忘れてしまいB,Cを行えば更新漏れが生じることになる。

「記事の公開後は記事を修正しない」と仮定すればCでもOK。しかし、実際は公開後にも追記や修正などが起こりうる。毎回全記事を更新確認したほうが安全にバックアップできる。

所感

これでバックアップは完璧。

ついにMarkdown形式データのバックアップが全件できた。満足満足。

実行時点でファイルサイズは5.8MBだった。はてなのエクスポートでは3.0MBだった。

APIではMarkdownとHTML両方を保存しているが、エクスポートはHTMLだけ。そのせいで約2倍になっていると思われる。