静的ファイルを Amazon Simple Storage Service(S3) に同期します。
AWS_CloudFrontプラグインと併用が可能です。AWS_CloudFrontプラグインと併用する場合、ファイルの更新・削除後に S3へ同期、その後にキャッシュ無効化リクエストを送信します。
このプラグインの動作には PowerCMS X ver.3.0 以上が必要です。
このプラグインによって同期されるのは PowerCMS X によって出力・削除されたファイルのみとなります。FTPなどで直接設置・削除したファイルは対象外となります。
同期処理は 1ファイル単位で行われます。
スコープの設定で「リンクURL」にS3バケットのURLを入力して、「両方のリンクボタンを表示」にチェックを入れて設定を保存すると、管理画面にリンクが追加されます。
AWS SDK for PHP をインストールします。パスは include_path の配下であればどこでも構いません(autoload.phpのパスを環境変数 composer_autoload に指定します)。
$ composer require aws/aws-sdk-php
AWS_S3プラグイン用の環境変数を指定します。config.jsonに記述する場合は、Web経由で config.jsonにアクセスできないように制限をかけてください。
"composer_autoload" : "/var/www/PowerCMSX/vendor/autoload.php",
"aws_s3_queue_interval" : 100,
"aws_s3_realtime_sync": true,
"aws_s3_cache_max_age" : 86400,
"aws_s3_realtime_maxsize": 104857600,
"aws_s3_exclude_exts" : "",
"aws_s3_use_custom_mapping": false,
"aws_s3_use_mediaconvert": false
※ 「composer_autoload」の指定がないとプラグインを有効化できません。
※ 環境変数「denied_exts」に指定されている拡張子は 環境変数「denied_exts」の初期値 別ウィンドウで開きます でご確認ください。
※「aws_s3_realtime_sync」指定のある時も、実際の処理は __destruct (非同期処理を含むすべての処理が行われた後) に実行されるため、多少のタイムラグが生じます。
※「aws_s3_use_custom_mapping」は ver.3.52 / 2.752 以降で利用可能です。
※「aws_s3_use_mediaconvert」は ver.3.52 / 2.752 以降で利用可能です。
※「aws_s3_realtime_sync」指定のある時も、以下の場合はキューによって同期します。
プラグインを有効化し、設定を行います。プラグイン設定は、システム、スペースなどのスコープごとに設定します。
task_ids に「aws_s3_synchronize_s3」を指定して worker.php を実行することで、すべてのファイル(除外設定されているものを除く)をアップロード、削除フラグのあるもの(除外設定されているものを除く)については削除します。
cd /path/to/PowerCMSX; sudo -u apache php ./tools/worker.php --verbose --task_ids aws_s3_synchronize_s3
※ AWS、Amazon S3 および CloudFront は、AWS の米国およびその他の国における登録商標です。