PHPackages                             jorisnoo/craft-cloudinary - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. jorisnoo/craft-cloudinary

ActiveCraft-plugin[File &amp; Storage](/categories/file-storage)

jorisnoo/craft-cloudinary
=========================

Cloudinary integration for Craft CMS.

2.1.2(2mo ago)0130MITPHPPHP &gt;=8.2CI passing

Since Nov 15Pushed 2mo agoCompare

[ Source](https://github.com/jorisnoo/craft-cloudinary)[ Packagist](https://packagist.org/packages/jorisnoo/craft-cloudinary)[ RSS](/packages/jorisnoo-craft-cloudinary/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (5)Dependencies (13)Versions (11)Used By (0)

Cloudinary for Craft CMS
========================

[](#cloudinary-for-craft-cms)

This plugin integrates [Cloudinary](https://cloudinary.com/) with [Craft CMS](https://craftcms.com/). Assets can be uploaded from Craft's control panel and then transformed and delivered by Cloudinary, even if stored in a different filesystem. The plugin is compatible with your existing Craft template code and named image transforms.

This is a fork of [thomasvantuycom/craft-cloudinary](https://github.com/thomasvantuycom/craft-cloudinary) with additional features including webhook synchronization, daily log rotation, and improved error handling.

Version Strategy
----------------

[](#version-strategy)

BranchVersionCraft CMS`main`2.x5.x`craft-4`1.x4.xRequirements
------------

[](#requirements)

- Craft CMS 5.0.0 or later
- PHP 8.2 or later

Installation
------------

[](#installation)

```
composer require jorisnoo/craft-cloudinary
./craft plugin/install cloudinary
```

Setup
-----

[](#setup)

The plugin adds a Cloudinary filesystem type to Craft. It can be used solely as a transform filesystem or as a storage filesystem as well.

To create a new Cloudinary filesystem, visit **Settings** → **Filesystems**, press **New filesystem**, and select "Cloudinary" as the **Filesystem Type**. Configure your Cloud Name, API Key, and API Secret (environment variables are supported).

To start using the filesystem, visit **Settings** → **Assets** → **Volumes**. You can create a new volume using the Cloudinary filesystem for both storage and transforms, or add the Cloudinary filesystem to any existing volume for transforms only. In the latter case, assets with public URLs from any filesystem are transformed by Cloudinary using the [fetch feature](https://cloudinary.com/documentation/fetch_remote_images#fetch_and_deliver_remote_files).

Image Transformations
---------------------

[](#image-transformations)

The plugin supports all of [Craft's native transform options](https://craftcms.com/docs/5.x/system/image-transforms.html), including mode (fit, letterbox, stretch, crop), position, quality, and format.

You can also use any of [Cloudinary's transformation options](https://cloudinary.com/documentation/transformation_reference#overview) in template transforms:

```
{% set thumb = {
  width: 100,
  height: 100,
  quality: 75,
  opacity: 33,
  border: '5px_solid_rgb:999',
} %}

```

Transformation options should be in camelCase (`aspect_ratio` → `aspectRatio`, `fetch_format` → `fetchFormat`).

Webhook Notifications
---------------------

[](#webhook-notifications)

The plugin supports real-time synchronization with Cloudinary via webhooks. When assets are uploaded, deleted, renamed, or moved in Cloudinary, the changes are automatically reflected in Craft.

### Setup

[](#setup-1)

Go to your [Cloudinary webhook settings](https://console.cloudinary.com/settings/webhooks) and add a notification URL:

```
https://your-site.com/actions/cloudinary/notifications/process?volume={VOLUME_ID}

```

Replace `{VOLUME_ID}` with your asset volume ID.

### Supported notification types

[](#supported-notification-types)

- `upload` — creates assets in Craft
- `delete` — removes assets from Craft
- `rename` — updates filenames
- `move` / `move_or_rename_asset_folder` — moves assets between folders
- `resource_display_name_changed` — updates asset titles
- `create_folder` / `delete_folder` — manages folder structure

### Security

[](#security)

Webhook requests are verified using Cloudinary's HMAC-SHA1 signature (via `X-Cld-Signature` and `X-Cld-Timestamp` headers). Signatures older than 2 hours are rejected.

Console Commands
----------------

[](#console-commands)

```
# Reconcile all Cloudinary asset volumes using the Search API
php craft cloudinary/sync

# Scan and fix public IDs that contain folder paths
php craft cloudinary/remove-paths-from-public-ids/scan {volumeId}
```

The sync command auto-detects all Cloudinary volumes and reconciles them with the Cloudinary Search API. It compares metadata (size, dimensions) and creates, updates, or deletes assets as needed. Ideal for cron jobs or catching up after missed webhooks.

Logging
-------

[](#logging)

The plugin logs to `storage/logs/cloudinary-YYYY-MM-DD.log` with daily rotation (30 days retained, 10MB max per file). Sensitive data (API keys, signatures) is automatically masked in logs.

###  Health Score

44

—

FairBetter than 91% of packages

Maintenance86

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 59.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~73 days

Recently: every ~8 days

Total

8

Last Release

71d ago

Major Versions

1.9.1 → 2.0.02026-03-31

PHP version history (2 changes)1.8.0PHP &gt;=8.0.2

1.9.0PHP &gt;=8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/0440b6ac994d5566a2ef5886fbac104a73f8458e70dbd20085e241ab0f647e0d?d=identicon)[jorgenoo](/maintainers/jorgenoo)

---

Top Contributors

[![jorisnoo](https://avatars.githubusercontent.com/u/5810772?v=4)](https://github.com/jorisnoo "jorisnoo (45 commits)")[![thomasvantuycom](https://avatars.githubusercontent.com/u/107400578?v=4)](https://github.com/thomasvantuycom "thomasvantuycom (31 commits)")

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/jorisnoo-craft-cloudinary/health.svg)

```
[![Health](https://phpackages.com/badges/jorisnoo-craft-cloudinary/health.svg)](https://phpackages.com/packages/jorisnoo-craft-cloudinary)
```

###  Alternatives

[craftcms/aws-s3

Amazon S3 integration for Craft CMS

631.5M28](/packages/craftcms-aws-s3)[servd/craft-asset-storage

Servd Asset Storage and Helpers integration for Craft CMS

1182.9k8](/packages/servd-craft-asset-storage)[cloudinary/cloudinary-magento2

Cloudinary Magento 2 Integration.

16160.0k](/packages/cloudinary-cloudinary-magento2)[vaersaagod/dospaces

DigitalOcean Spaces integration for Craft CMS

36102.7k1](/packages/vaersaagod-dospaces)[carlosocarvalho/flysystem-cloudinary

Flysystem adapter for Cloudinary

22157.3k5](/packages/carlosocarvalho-flysystem-cloudinary)[codebar-ag/laravel-flysystem-cloudinary

Cloudinary Flysystem 3 integration with Laravel

1227.7k3](/packages/codebar-ag-laravel-flysystem-cloudinary)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
