esa.io のデータを丸ごと GROWI に移行する
概要
GROWI には esa.io や Qiita:Team から記事をインポートする機能があります。
しかし、 2019/10/21 現在の機能では、画像は移行されず、移行元に残ったままになります。
今回、 esa.io から GROWI に画像も移行するためのgemを作成しましたので、使い方も合わせて説明します。 Qiita:Team からのインポートにはまだ対応していません。
インポート前の準備
esa.io や Qiita:Team と少々違う部分なのですが、 GROWI は App を立ち上げた初期設定のままでは画像などのファイルをアップロードすることができません。
Amazon S3などのストレージの準備が必要です。
設定方法は下記記事で説明しています。
記事のインポート
esa.io から GROWI に記事をインポートする場合は、GROWIの標準機能で行えます。
記事のインポートの仕方については、下記記事で説明しています。
画像のインポート
Gemのインストール
下記のGemをインストールします。
$ gem install growi-image_converter
アクセストークンの設定
esa.io から GROWI への移行してみた - zuglab で発行した GROWI のアクセストークンと、GROWI App のURLを環境変数で設定します。
シェルがBashの場合は下記のように設定します。
$ echo 'export GROWI_URL=https://*****.growi.cloud' >> ~/.bash_profile $ echo 'export GROWI_ACCESS_TOKEN="0123456789abcdef0123456789abcdef0123456789ab"' >> ~/.bash_profile $ source ~/.bash_profile
移行テスト
何もオプションを指定せずに growi-image_converter
コマンドを実行します。
変換対象になるページの一覧が表示されます。
実際にはまだ変換されていません。
$ growi-image_converter
下記のように表示されます。
[DRY RUN MODE] PageID: 5d9bfe5fab394d00510c39ae, Result: Through PageID: 5d831e595799980050f87f64, Result: Converted PageID: 5d84f0ec87339600517b338a, Result: Converted PageID: 5d941ff8f1be7d00503c4a0a, Result: Through PageID: 5d932aeaf1be7d00503c4a01, Result: Through PageID: 5d8b27c67e03f70050bafa5e, Result: Through PageID: 5d86fd378571d10046324f6c, Result: Through
移行の実行
特にエラー等が表示されていないようであれば、 -d
オプションを付与して、変換を実行します。
$ growi-image_converter -d
移行に失敗した画像がある場合は、結果に出力されるので、手動で対応します。
例えば、下記のエラーでは、記事内で指定されている esa.io の画像のパスがリンク切れを起こしています。
該当のページへは、 https://*****.growi.cloud/5d8652a143cc8400554f977f
のように PageID を指定してアクセスできます。
PageID: 5d8652a143cc8400554f977f, Image URL: https://img.esa.io/uploads/production/attachments/xxxxx/2019/09/21/xxxxx/xxxxx.jpeg, Message: 403 Forbidden
以上で esa.io にある記事、画像を GROWI にインポートできました。
参考