間違ってはてなブログの下書きを消しちゃった?データを復活させる驚くべき方法とは
いまだに解せないことがある。Wordpressにも何世代も戻ることが可能な自動バックアップがあるのに、はてなブログのエディターは1世代前しか記事を戻すことができない。
これです、これ。
ぼくはきみに大いに悩まされてしまったよ。
「(復元)」というリンクを押すと、1世代前の記事に戻すことができるけれど、一旦戻してしまうと、逆に取り消すことができない。先日も折角書いていた記事を、うっかり「(復元)」を押して消してしまうという事態になった。また、iPhoneアプリとPC上のブラウザを行ったり来たりして、誤操作で記事が消えてしまったこともある。
そんなとき、次の方法を試して欲しい。──キャッシュからの救出だ。
ただし、少しだけ特殊な操作が必要なところもある。事故は想定していないときに突然起こるものだから、すでに「事故」を経験した被害者はもちろん、そうでないひとも万が一の場合に備えて予習をしておこう。
この記事は「下書き途中」の記事データを復活させます
はじめに、この記事は「まだ公開していない、下書き途中の記事」を復活させる方法について書いていく。はてなブログが用意してくれたエディタで記事を執筆し、誤操作などで記事が消えてしまった場合を想定している。
「一旦公開した記事」を復活させる方法に関しては、この記事に詳しく書いてあるので、参考にしてほしい。
こちらの記事も大変秀逸。誤って公開してしまった記事を消してしまっても、一旦ついたスターやはてブまで復活させられるので、チェックしておこう。
また、以下の記事を参考にしたけれど、若干不足があったと思ったので、その部分はこの記事で補完していく。
キャッシュを復活させてデータを救出する!
まず大前提として、はてなブログエディターの「(復元)」機能について触れておこう。
これ。
「(復元)」を使うと例えばスタバのフリーWifiを使って記事を書いていたとして、一旦オフラインになっても復活させることができる。
これはブラウザのCacheに記事内容を保管していることを意味している。
ちなみにもっとkwskなひとのために、IT用語辞典でのキャッシュの説明は以下の通り。
キャッシュとは、使用頻度の高いデータを高速な記憶装置に蓄えておくことにより、いちいち低速な装置から読み出す無駄を省いて高速化すること。また、その際に使われる高速な記憶装置や、複製されたデータそのもののこと。
つまり、ブラウザにデータが格納されているので、ブラウザから下書きデータをぶっこ抜けばいいという話になる。
その手順について解説していこう。
さあ、復活だ!
ステップ1:準備
- 使っていたブラウザー
- Sublime Text (テキストエディタ)
- 0xED / Stirling (バイナリエディタ)
まずは、これらのソフトを準備しておこう。
テキストエディタについては、Sublime Textでなくとも、矩形選択ができるテキストエディタであればOK。また、ぼくはMacユーザーだったので0xEDというソフトを使ったけれど、WindowsならStirlingが有名なのでこれを使うといいと思う(バイナリ保存するだけなので、もっと軽量なソフトもあるはず)。
ステップ2:キャッシュの捜索
ちょっと骨の折れる作業だけれど、キャッシュから該当の下書きデータを捜索していく。
キャッシュは、代表的なブラウザなら、アドレスバーに以下のURLを打ち込むと一覧を表示させることができる。
- Chrome →
chrome://cache
- Vivaldi →
vivaldi://cache
- Firefox →
about://cache
ここにあるのが直近のキャッシュ。
「⌘(Command) + F」(Windowsでは「Ctrl + F」)を押すと検索窓が出てくるので、「preview」と打って該当記事を掘り当てる。
すると、473件ととんでもない数がヒットする。
この中で「http://〜」や「https://〜」ではなく、「16ケタの数字」で始まり「preview」で終わるキャッシュを掘り当てる。そのキャッシュこそが、あなたがさっきまで書いていた記事のキャッシュデータだ。
数件ある場合は、一番最初に出てきたものが最新のものなので、基本的にはそれを使えばいい。
場合によっては何世代か前に戻りたい場合があるかもしれない。その場合には、もう少し探して、同じ「16ケタの数字」で始まり「preview」で終わるキャッシュを探せばいい。
ステップ3:キャッシュデータの抽出
該当のキャッシュデータをクリックすると、以下のような文字列が表示される。
上段の「HTTP/1.1 200 OK〜」から始まるパーツはヘッダーで、データの情報を示している。
このヘッダーによると、データは「HTML」で書かれていて、「gzip」という形式でエンコードされている。表示されている時間はキャッシュが作成された時間だが、10時間ほど時差が生じているみたいだ。
中段の「00000000:〜」から始まるパーツはヘッダーをバイナリデータにしてある。ここはあまり関係ない。
下段の「00000000:〜」から始まるパーツが、実際に復元するもととなるバイナリデータとなる。この部分をSublime Textにまるごとコピペしよう。
ステップ4:バイナリ部分を抜き出す
ペーストしたデータは、実際に使うのは2ケタの数字や文字で示されている部分なので、「Option」を押しながらマウスで選択すると矩形選択ができるので、コピーして新規ファイルでバイナリ部分だけをペーストする。
スペースは余分なので、「⌘(Command) + Option + F」でスペースを取り除こう。
取り除くと、こんな感じになる。
ステップ5:バイナリデータとして「.gz」形式で保存
ここで先ほどインストールした「0xED」を起動し、メニューから「New」を選んで立ち上げる。
先ほど用意したバイナリコードを0xEDに貼り付ける。
「preview.gz」というファイル名で保存する(拡張子が「.gz」なら何でもOK)。
出来たファイルを解凍すれば、いよいよ欲しいファイルのお出ましだ!
ステップ6:出来たファイルをブラウザでチェック!
作成したファイルは拡張子がついていないので、右クリックでブラウザを選んで、再現されているかを確認しよう。
すると…!
再現できてるー!
CSSなどは読みこん出来ないみたいだけれど、ちゃんと書いたテキストは再現されている。
テキストエディタで開いても、ちゃんとhtmlごと復活されられていることが分かる。
よかったよかった…。
まとめ
まあこまめに下書きを保存しておくのが一番だけれど、書いているのに夢中になって誤操作で消してしまうこともある。上記の方法は6つのステップに分けて詳細に説明したけれど、ツールをそろえておけば約3分で復活させることが可能なので、万が一のために準備しておくといいかもしれない。
けれど、もっともいい方法は、はてな開発チームが自動バックアップ機能をWordpress並みに作り上げてくれることだ。ぼくはとっても期待している。
今日のひとりごと
数あるガチャガチャの中で唯一これが欲しいと思った。笑 pic.twitter.com/9RPKzpxN7H
— ブライアンねこ (@x93mg) 2016年5月28日
そうだ!読者になろう!
ブックマークもお忘れなく!
Recommend!