MtS3Sync
Movable Type の公開ファイルを、
シンプルに S3 へ。
Overview
MT のサイトディレクトリを、
そのまま S3 に同期。
MtS3Sync は、Movable Type の管理画面に S3 連携機能を追加するプラグインです。
静的サイトジェネレーターとして MT を活用している場合、構築後のファイルを S3 に配置することで、CloudFront などと組み合わせた高速・低コストな配信基盤を構築できます。
FTP ソフトや独自スクリプトを使わず、MT の管理画面から直接、差分チェック付きで同期を実行できます。外部モジュールのインストールは不要です。
Features
機能
バケットをツリー表示
S3 バケットの内容をフォルダツリー形式で確認できます。同期先パスは自動的に展開表示。接続状態も管理画面上でひと目で確認できます。
ETag / MD5 による差分チェック
ファイルの MD5 と S3 の ETag を比較し、内容が同一のファイルはアップロードをスキップ。2 回目以降の同期を大幅に高速化します。
S3 側の不要ファイルを削除
ローカルに存在しないファイルを S3 から削除する --delete オプションに対応。実行前に確認モーダルを表示し、誤操作を防止します。
同期対象を柔軟に管理
フォルダ・ファイル単位で同期除外パスを設定できます。除外されたアイテムはファイルツリーでグレーアウト表示されます。
MT のサイトログに記録
同期結果(upload / delete / unchanged / error の件数)を Movable Type のサイトログに記録。プラグイン設定でログ出力を有効にすると、同期結果をテキストファイル(logs/logfile_blog{ID}_YYYYMM_***.txt)にも書き出します。
サイトごとに異なる S3 バケットを設定
MT の各サイトで、接続先のバケット・リージョン・プレフィックスを個別に設定できます。複数サイトを運営している場合でも、配信先を柔軟に管理できます。
Screens
管理画面
Requirements
動作要件
システム要件
- Movable Type ソフトウェア版 8.8 以降
- Perl 5.16 以降
- S3 への HTTPS 通信が可能なサーバー
※ MT クラウド版での稼働は保証しかねます。
AWS 要件
- IAM アクセスキー(ID + シークレット)
- s3:ListBucket 権限
- s3:PutObject 権限
- s3:DeleteObject 権限(削除オプション使用時)
使用 Perl モジュール
外部インストール不要(MT 同梱 / Perl コア)
| モジュール | 種別 | 用途 |
|---|---|---|
| LWP::UserAgent | MT 同梱 | S3 REST API 呼び出し |
| HTTP::Request | MT 同梱 | HTTP リクエスト構築 |
| Digest::SHA | MT 同梱 | AWS Signature V4 署名 |
| Digest::MD5 | Perl コア | ファイル差分チェック(ETag 比較) |
| JSON::PP | Perl コア | AJAX レスポンス JSON 生成 |
| Encode | Perl コア | 文字エンコーディング処理 |
Lineup
ラインナップ
Disclaimer
免責事項
- 無保証
- 本プラグインは現状有姿(as-is)で提供されます。動作の正確性・完全性・特定目的への適合性について、いかなる保証も行いません。
- 免責
- 本プラグインの使用または使用不能によって生じた損害(データの損失・S3 ストレージ費用・業務上の損失等を含む)について、Ethan Technology Japan 株式会社は一切の責任を負いません。
- 自己責任
- 本プラグインのインストール・設定・運用はすべて利用者自身の責任で行ってください。本番環境への適用前に、必ず検証環境でのテストを実施してください。
- サポート
- 本プラグインに対する技術サポート・バグ修正・アップデートの提供は保証しません。お問い合わせにはできる限り対応しますが、回答をお約束するものではありません。
- 変更・配布
- 自身の環境での改変は自由です。第三者への再配布・サブライセンスはご遠慮ください。
Setup & Usage
初期設定と使い方
1. インストール
- プラグインファイルを MT の
plugins/ディレクトリに配置 - MT 管理画面 システム → プラグイン を開く
- MtS3Sync が一覧に表示されていれば完了
※ 同期ログを使用する場合は、plugins/MtS3Sync/logs/ ディレクトリに書き込み権限(755 または 777)を付与してください。
2. MT ロールと権限
システム管理者は自動的に両権限を持ちます。一般ユーザーには システム → ロール で付与してください。
| 権限 | 対象機能 | 備考 |
|---|---|---|
| S3Syncの設定 | S3設定・ファイルリスト | 「サイト管理者」「設定の変更」と連動 |
| S3Syncによる同期 | S3同期実行 | 「サイト管理者」と連動 |
3. S3 設定
左メニューの S3Sync → S3 設定 を開き、以下の項目を入力して保存します。
| 項目 | 説明 |
|---|---|
| AWS アクセスキー ID | IAM ユーザーのアクセスキー ID |
| AWS シークレットアクセスキー | IAM ユーザーのシークレットアクセスキー |
| AWS リージョン | バケットのリージョン(例: ap-northeast-1) |
| S3 バケット名 | 同期先のバケット名 |
| S3 プレフィックス | 同期先のパス(省略可。例: public/) |
| 同期元ディレクトリ | 省略するとサイトディレクトリを使用 |
| 同期対象除外パス | ファイル名またはディレクトリ名を指定(ディレクトリは末尾に / を付ける)。同期処理の対象から除外されます。 |
| 同期ログ | 有効にするとテキストログを出力 |
4. S3 同期の実行
- 左メニューの S3 同期 を開く
- 内容を確認して 同期を実行 をクリック
- --delete オプション を有効にすると、同期元にないファイルを S3 から削除(確認ダイアログあり)
5. 同期結果の確認
- 左メニューの S3 ファイルリスト でバケット内容をツリー確認
- 同期結果(upload / delete / unchanged / error 件数)は MT サイトログ に記録
- ログ出力が有効な場合は
logs/logfile_blog{ID}_YYYYMM_***.txtにも書き出し
FAQ
よくある質問
- 再構築のたびに自動で S3 同期されますか?
- 自動同期には対応していません。再構築後、管理画面の S3 同期から手動で実行してください。
- 削除オプションを使うと、意図しないファイルまで削除される心配はありますか?
- 同期元ディレクトリに存在しないファイルのみが削除対象になります。実行前に確認ダイアログが表示されますので、内容をご確認の上で実行してください。別途、同期の対象からはずして触らないようにする、除外パスも設定できます。
- MT の各サイトで、それぞれ別の S3 バケットを使えますか?
- はい。MT のサイトごとに異なるバケットを設定できます。
- 初回同期で大量のファイルがある場合、タイムアウトしませんか?
- サーバーのタイムアウト設定によりますが、タイムアウトする可能性はございます。再度実行していただければ、中断された続きから実行されます。
- 不具合を見つけた場合はどうすればいいですか?
- お問い合わせフォームよりご連絡ください。対応をお約束するものではありませんが、内容を確認しできる限り対応いたします。