2019-09-03

Craft CMS で S3 と連携する Amazon S3 プラグインを試してみた #craftcms


重い腰をあげて Amazon S3 プラグインを触ってみる。

Amazon S3
https://plugins.craftcms.com/a...

触ろう触ろうと思いつつ後回しになってた。

インストールするとこんな感じで、アセットのボリュームの設定に S3 が選択できるようになる。

S3 周りの情報をいれないといけないので先に bucket とかは作っておくほうが良い。

パブリックURLの設定をオンにしておくのを忘れないように。。。忘れてて画像が表示されなくて一人考えてしまった。

このボリュームに画像をアップすればS3側にもアップされる。

https://s3.ap-northeast-1.amazonaws.com/hogehoge/fugafuga.jpg

みたいな感じのURLで。

s3asset っていうアセットのフィールドを作っておいて

<div>
    <h2>S3テスト</h2>
    <img src="{{ entry.s3asset.one().url }}" >
  </div>

で取り出せた。

pakutaso のきれいな写真を使うと、表示されたときに心が癒やされる感がある。ありがたし。。。

S3触ってなかったからS3周りの設定のほうが時間かかった。

このボリュームだけはwatermark つける処理を入れるとかすればいいような気もする。
S3にする必要があるかどうか?はあるけど。

bucketpolicyはこんな感じで試した

{
  "Id": "Policy1566689982367",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1566630628570",
      "Action": [
        "s3:DeleteObject",
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:ListBucket",
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::<$hogehoge$>","arn:aws:s3:::<$hogehoge$>/*",],
      "Principal": {
        "AWS": [
          "<$hogehoge$>"
        ]
      }
    }
  ]
}

S3にすれば lambda とか色々できそうだけどそのためのスキルが圧倒的に足りていないな、、、