C3 Cloudfront Cache Controller

Description

This is simple plugin that clear all cloudfront cache if you publish posts.
You can easy use CloudFront in front of WordPress.

Fixtures

  • wp_is_mobile()
    Check device viewer type by CloudFront header.
    Now supports HTTP_CLOUDFRONT_IS_MOBILE_VIEWER and HTTP_CLOUDFRONT_IS_TABLET_VIEWER.

  • preview url
    In preview page, plugin add post_date query to avoid CloudFront cache.
    And set wordpress_loginuser_last_visit cookie for avoid CloudFront cache too.

The wordpress_loginuser_last_visit cookie will be removed if user sign out.

Invalidation(Clear Cache) Page URL

This plugin send following page url to CloudFront Invalidation API.

  • TOP page URL
  • Published Post Page URL
  • Category Archive Page URL

AWS IAM Policy Example

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "cloudfront:GetDistribution",
                "cloudfront:ListInvalidations",
                "cloudfront:GetStreamingDistribution",
                "cloudfront:GetDistributionConfig",
                "cloudfront:GetInvalidation",
                "cloudfront:CreateInvalidation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

Cookie

This plugin set a Cookie named wordpress_loginuser_last_visit to the user.
It prevents CDN caching when the user is previewing his posts or contents.
Once logging out from Dashboard, plugin removes this cookie from user.

Installation

  1. Activate the plugin through the ‘Plugins’ menu in WordPress
  2. Create IAM user to attach valid IAM Policy for AWS CloudFront
  3. Configure the plugin settings from wp-admin

FAQ

Installation Instructions
  1. Activate the plugin through the ‘Plugins’ menu in WordPress
  2. Create IAM user to attach valid IAM Policy for AWS CloudFront
  3. Configure the plugin settings from wp-admin
When it send invalidation request?

If post published,this plugin post invalidation request to CloudFront.

Can we select AWS SDK version ?

You can select AWS SDK version to add a plugin like …

<?php
/*
 * Plugin Name: Should use AWS SDK v2
 * Version: 0.0.1
 * Plugin URI:https://github.com/amimoto-ami/c3-cloudfront-clear-cache
 * Description: To use aws sdk v2 for C3 Cloudfront Cache Controller
 * Author: hideokamoto
 * Author URI: https://wp-kyoto.net/
 */
add_filter( 'c3_select_aws_sdk', function() {
    return true;
} );

Reviews

Works like charm!!!

Tried a couple of others until I found this amazing simple plugin !

But After I enter the credentials there should be some screen… I see a blank page :/

But It works!!!

Read all 1 review

Contributors & Developers

“C3 Cloudfront Cache Controller” is open source software. The following people have contributed to this plugin.

Contributors

“C3 Cloudfront Cache Controller” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “C3 Cloudfront Cache Controller” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

5.3.4

  • [Bug fix] Small bug fix

5.3.3

  • [Change SDK] replace sdk

5.3.2

  • [Bug fix] Use EC2 role if using as AMIMOTO Managed hosting

5.3.1

  • [Add filter] Can select AWS SDK version by filter

5.3.0

  • [Update SDK] Use AWS SDK v3 when you using php 5.6 or later

5.2.1

  • [For AMIMOTO Managed] bug fix to run by WP-CLI

5.2.0

  • [Add filter] We can disable to register wp-cron that retry request invalidation.
  • [Readme] Update readme to see IAM Policy example.

5.1.0

  • [Update preview fixture] Set cookie to avoid CloudFront cache if user sign in
  • [Update preview fixture] Unset cookie for avoide CloudFront cache if user sign out

5.0.0

  • Support CloudFront viewer params on wp_is_mobile().(4.9.0 or later)

4.4.0

  • Fix small bug
  • Add some feature for AMIMOTO Managed hosting user

4.3.1

  • Fix cron interval
  • add filters 'c3_invalidation_interval, c3_invalidation_cron_interval, c3_invalidation_item_limits.
  • update default invalidation interval & items.

4.3.0

  • Schedule cron event if you published many post at the same time

4.2.1

  • Fix ‘c3_credential’ filter position

4.2.0

  • Support AMIMOT Dashboard

4.1.0

  • Show Invalidation Logs

4.0.3

  • Auto Deploy by Travis

4.0.2

  • Add WP-CLI param check ( wp c3 flush)
  • change transient_key

4.0.1

  • Bug fix ( conflict Nephila Clavata )

4.0.0

  • Support AWS SDK Version3
  • Remove action hook -> ‘c3_add_setting_before’
    use ‘c3_after_title’ filter hook instead.
  • Remove action hook -> ‘c3_add_setting_after’
    use ‘c3_after_auth_form’ filter hook instead.

3.0.0

  • Include CF Preview Fix plugin
  • Rename

2.4.3

  • Fix Catch Exception BUG

2.4.2

  • Fix CLI BUG

2.4.1

  • Fix CLI BUG

2.4.0

  • Add WP-CLI Command ( Update Settings )

2.3.0

  • Add WP-CLI Command

2.2.2

  • Force Invalidation

2.2.1

  • Fix Typo

2.2.0

  • Add Filter for using EC2 Instance Role.
  • Translationable in t.w.org

2.1.1

  • Fix too many invalidation url error.

2.1.0

  • Add hook to customize invalidation URL
  • support new invalidation url, terms.
  • Manualy invalidation button added

2.0.2

  • Change AWS SDK
  • code refactoring by wokamoto
  • Invalidation URL

2.0.1

  • Change AWS SDK
  • code refactoring by wokamoto
  • Invalidation URL

1.0

  • Initial released.