Cloudflare R2
Version 1.2.0
August 12, 2026
Added
- Added presigned upload support, letting clients upload straight to the bucket instead of proxying the bytes through PHP
- Added presigned support for replacing an existing asset's file, including transform invalidation and the
beforeReplaceFile/afterReplaceFileevents - Added a “Use Presigned URLs” filesystem setting, off by default, with a configurable size threshold below which uploads keep going through PHP
- Added a progress readout for direct uploads whose caller doesn’t already show one, so replacing a file no longer sits on a bare spinner
- Added a warning when navigating away from an in-progress direct upload, and a best-effort abort so abandoned multipart uploads stop costing storage
- Added
SupportsPresignedUploads, whichFsnow implements - Added
Fs::isPresignedUploadEnabled(),Fs::getPresignedUploadThreshold(), andFs::shouldPresignUpload()so consumers can ask the filesystem rather than hardcoding the policy - Added
Fs::getPresignedUpload()for single-request uploads - Added
Fs::beginMultipartUpload(),Fs::getPresignedUploadParts(),Fs::completeMultipartUpload(), andFs::abortMultipartUpload()for multipart uploads - Added
Fs::getMultipartPartSize(), which returns a uniform part size, as R2 requires of all but the final part. Sizes scale with the file to keep the part count sane — a 626 MB upload is 40 parts, not 126 - Added
Fs::getUploadedParts(), so callers can ask the bucket which parts arrived instead of relying on the client readingETagresponse headers - Added
PresignedUpload,PresignedUploadPart, andMultipartUploadmodels
Version 1.1.1
June 24, 2024
- Update variables/classes to avoid conflicts with S3 plugin
Version 1.1.0
February 10, 2024
Changed
- Updated requirements for Craft CMS 5 compatibility
- Updated documentation URLs
Version 1.0.1
September 2, 2023
Fixed
- Prevent calls to GetObjectAcl when copying and moving files (#6)
- Cleanup unused classes
Version 1.0.0
December 29, 2022
Changed
- Version change since R2 is now generally available
- Updated README.md
Version 0.2.0-beta
July 14, 2022
Added
- Added
$regionproperty (fixes manual bucket selection issue)
Changed
- Replaced instances of
Craft::parseEnv()withApp::parseEnv()
Removed
- Reverted
createAdapter()back to usingvisibility()method (reverts object visibility to be based on$makeUploadsPublicproperty) - Removed Cloudfront-related logic
Version 0.1.0-beta
July 13, 2022