deuxhuithuit / craft-cloudflare-images
Upload your images assets to Cloudflare Images from Craft CMS assets interface. It exposes the a file system and supports craft image transforms.
Package info
github.com/DeuxHuitHuit/craft-cloudflare-images
Type:craft-plugin
pkg:composer/deuxhuithuit/craft-cloudflare-images
Requires
- php: ^8.2|^8.3|^8.4
- craftcms/cms: ^5.0.0
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/phpstan: dev-main
- friendsofphp/php-cs-fixer: ^3.35
- squizlabs/php_codesniffer: ^3.7
README
This plugin offers a easy way to upload your images assets to Cloudflare Images from Craft CMS assets interface. It exposes the a file system and supports craft image transforms.
Installation:
- Install with composer
composer require deuxhuithuit/craft-cloudflare-images
- Install in craft
craft plugin/install cloudflare-images
-
Add your account id, account hash and api token in the settings. Those can be found in your Cloudflare dashboard. We recommend to use env vars for this.
-
Go in craft and create a new File System using the Cloudflare Image FS. Also create a new Volume that uses this FS. It can be used as the main FS, or simply as a transform FS in an existing Volume.
-
Make sure Flexible Variants are enabled in your Cloudflare dashboard (see https://developers.cloudflare.com/images/cloudflare-images/transform/flexible-variants/). By default, Cloudflare Images do not generate publicly accessible images. Enabling flexible variants will generate publicly accessible images and allow for craft image transform to work. The public url is accessible via the
$asset->cloudflareImagesUrl()method. If flexible variants are not enabled, the image is only accessible via Craft's Control Panel. -
Profit!
Account migration
When moving images from one Cloudflare account to another:
- Run download while the plugin still uses the old account credentials.
- Update the plugin settings to the new account ID, hash, and API token.
- Run reupload with
--dry-runfirst to validate local files, then without it to upload.
php craft cloudflare-images/download <volume> # update CLOUDFLARE_* env vars / plugin settings php craft cloudflare-images/reupload <volume> --dry-run php craft cloudflare-images/reupload <volume>
Reupload skips assets already on the current account. Use --force to upload them again.
Made with ❤️ in Montréal.
(c) Deux Huit Huit