Use cloudfront as a static cache driver.
From a standard Statamic V3 site, you can run:
composer require daynnnnn/statamic-cloudfront
Then you'll just need to add the cloudfront strategy to your static cache config:
'strategies' => [
...
'cloudfront' => [
'driver' => 'cloudfront',
'expiry' => null,
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'distribution' => env('CLOUDFRONT_DISTRIBUTION_ID'),
],
],
It's pretty simple; if the page should be cached, it sets the responses cache control header to cache for 30 days. Then if a page is updated, an invalidation request will be sent to cloudfront for that page.
- Add some tests.
- Try and remove
aws/aws-sdk-php
dependency.