PluginProbe
Media Cloud Sync / 1.4.1
Media Cloud Sync v1.4.1
1.4.1 1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 All 35 releases
← All changes | readme.txt +73 -7 1.3.111.4.1 View file →
@@ -1,15 +1,14 @@
1 -=== Media Cloud Sync ===
1 +=== Media Cloud Sync ===
2 2 Author: Dudlewebs
3 3 Author URI: https://dudlewebs.com
4 4 Contributors: dudlewebs
5 -Donate link: https://dudlewebs.com/donate
6 5 Tags: sync, cloud, offload, media, aws
7 6 License: GPLv2 or later
8 7 Requires PHP: 8.1
9 8 Requires at least: 5.9
10 -Tested up to: 7.0
11 -Stable tag: 1.3.11
9 +Tested up to: 7.1
10 +Stable tag: 1.4.1
12 11
13 12 Offload media to cloud storage (S3, DigitalOcean, Google Cloud, Cloudflare R2, S3 compatible Services) and rewrite URLs for seamless file delivery.
14 13
15 14 == Description ==
@@ -64,13 +63,26 @@
64 63 🔹 Benefit from RTL (Right to Left) support for multilingual websites.
65 64 🔹 Access WPML string translation support for seamless multilingual content management.
66 65 🔹 Enjoy seamless compatibility across multisite networks for centralized management and consistent performance.
67 66
67 +== Pro Features ==
68 +[Media Cloud Sync Pro](https://dudlewebs.com/product/media-cloud-sync/) extends the free plugin with cloud-side management tools, faster bulk operations, and per-item control directly from the Media Library:
69 +
70 +🔹 **Media Library actions** — Sync to Cloud, Force Re-upload, Remove from Server, Restore from Cloud, Remove from Cloud, and View on Cloud, directly on the single-attachment popup and as bulk dropdowns in both grid and list view, with a cloud-offload status badge/column and a Synced/Not Synced filter.
71 +🔹 **File Manager** — browse your connected cloud bucket, download as zip, restore to server, move, and delete files, with per-item and bulk actions.
72 +🔹 **Restore Media to Server** — bulk-restore previously offloaded media from the cloud back to your server.
73 +🔹 **Move Media to New Path** — bulk-move already-synced media to a newly configured base path.
74 +🔹 **Bucket-to-Bucket Migration** — copy synced media to a new provider, bucket, or account, including reusing an already-connected credential source as the migration destination.
75 +🔹 **Ajax/Mixed Sync Method** — run bulk sync live in the browser (Ajax) or with automatic WP-Cron fallback (Mixed), instead of Cron-only.
76 +🔹 **Delivery Settings: Cache-Control duration** — set a custom Cache-Control max-age (or explicit no-cache) per storage/CDN choice for newly uploaded files.
77 +🔹 **Include/Exclude Extensions** — control exactly which file types get uploaded to the bucket.
78 +🔹 **Third-party compatibility** — WooCommerce and Easy Digital Downloads downloadable files, BuddyBoss Platform, WPML, Elementor, Divi, and Enable Media Replace all stay in sync with cloud storage.
79 +🔹 And more...
80 +
68 81 == Other Useful Links ==
69 82 🔹 [Official website](https://dudlewebs.com)
70 -🔹 [Documentation](https://dudlewebs.com/support)
71 -🔹 [Pro version coming soon](https://dudlewebs.com)
72 -🔹 [Donate Now!! Get PRO version license discounts](https://dudlewebs.com/donate)
83 +🔹 [Documentation](https://dudlewebs.com/guideline/media-cloud-sync/)
84 +🔹 [Get Media Cloud Sync Pro](https://dudlewebs.com/product/media-cloud-sync/)
73 85
74 86 == Screenshots ==
75 87 1. Plugin dashboard page, showcasing the main options for configuring the Media Cloud Sync settings.
76 88 2. Configure wizard welcome screen.
@@ -140,8 +152,62 @@
140 152 - **Description**: Manages media files efficiently, allowing file storage, retrieval, and deletion.
141 153 - **Data Sent**: User authentication data, file metadata (name, size, MIME type).
142 154
143 155 == Changelog ==
156 += 1.4.1 =
157 +* Feature: Added private media support (Pro) — mark individual Media Library items private, served through short-lived signed URLs.
158 +* Feature: Added a "Remove from Cloud" bulk sync job (Pro).
159 +* Feature: Added a per-item cloud-delivery override (Pro) — "Use Server URL" / "Use Cloud URL" in the Media Library.
160 +* Bug Fix: WooCommerce could leave restored files on the server and skip re-uploading a regenerated thumbnail crop.
161 +* Bug Fix: Customizer crop, image editor, and Regenerate Thumbnails could leave restored files on the server without cleaning up.
162 +* Bug Fix: A successful Cloudflare R2 restore could be treated as failed, skipping cleanup.
163 +* Bug Fix: A failed image size re-upload could wipe that size's cloud reference from the database.
164 +* Bug Fix: Private media on Google Cloud Storage always failed to apply; now uses GCS Managed Folders instead.
165 +* Feature: Added a Security step (Block All Public Access) to the Google Cloud Storage setup wizard.
166 +* Feature: Added a generic integration extension point so Pro add-ons can register new source types.
167 +* Bug Fix: A source type with no meta table configured could break signed URL generation.
168 +* Bug Fix: Resolving a file's relative path from a full URL produced an incorrect local path.
169 +* Feature: Source types can now declare a translatable admin-UI label and use a custom meta caching backend.
170 +* Bug Fix: A WooCommerce compatibility hook could force local file paths for the rest of a request after any image rendered.
171 +* Feature: Added a generic hook (Pro) letting an integration veto a cloud-storage delete when another item shares the file.
172 +* Bug Fix: An attachment deleted without going through wp_delete_attachment() could leave its cloud-tracking row orphaned.
173 +* Feature: Added generic bulk sync job lifecycle hooks so Pro add-ons can react when a job finishes.
174 +* Security Fix: A crafted file path in a Pro downloadable-file field (WooCommerce/EDD) could use "../" to escape the uploads directory.
175 +* Bug Fix: Resolving a bare cloud/local URL (e.g. in page builder data) to its attachment could silently fail to match.
176 += 1.4.0 =
177 +* Compatibility: WordPress 7.1
178 +* Bug Fix: WooCommerce image regeneration restored offloaded files to the server to resize them but never removed them again, even with "Remove from server" enabled, and could leave stale, un-regenerated images on the cloud since the plugin's "unchanged, skip reupload" check couldn't tell a regenerated file at the same size apart from a real no-op. Regenerated files are now always re-uploaded, and restored copies are cleaned up once WooCommerce is done with them.
179 += 1.3.12 =
180 +* Tweak: Pro upgrade prompts now link to the live product page and list the actual Pro features (Media Library actions, File Manager, Restore to Server, Move to New Path, Bucket-to-Bucket Migration, faster Ajax/Mixed sync). Added an "Upgrade to Pro" plugin action link on the Plugins screen for non-Pro sites.
181 +* Feature: File Manager (Pro) — browse your connected cloud bucket, download as zip, restore to server, move, and delete files, with per-item and bulk actions.
182 +* Feature: Added CDN provider presets (Amazon CloudFront, Bunny.net, Fastly, Cloudflare CDN, Akamai, KeyCDN, Gcore, Edgio, Leaseweb CDN, CDNetworks) to every storage service's CDN settings.
183 +* Feature: Sync Method toggle (Ajax/Cron/Mixed) on the Sync screen for Pro-licensed users. Controls whether bulk sync runs via the browser, WP-Cron, or both.
184 +* Bug Fix: Security — SQL injection risk in media path and settings queries. Fixed with $wpdb->prepare.
185 +* Bug Fix: purge_all_versions() could leave old files undeleted on providers (e.g. Cloudflare R2) that don't support listing object versions.
186 +* Bug Fix: File Manager's shift-click range selection didn't collapse back down when re-clicking a row inside an existing selection.
187 +* Bug Fix: Background sync could be slow to respond to Pause/Stop. Concurrent triggers could also duplicate an upload or lose track of its status.
188 +* Bug Fix: Sync could skip or reprocess items if the media library changed mid-run. Multipart retries were uncapped, file handles could leak on failed uploads, and sync log writes weren't locked.
189 +* Bug Fix: Images waiting on WordPress-generated thumbnails are now retried instead of marked failed. Upload failures now log the real provider error. Ajax sync mode now resumes correctly after the browser Back button.
190 +* Bug Fix: Storage credential and connection checks fixed across S3, DigitalOcean Spaces, Google Cloud Storage, Cloudflare R2, and S3-Compatible providers.
191 +* Bug Fix: S3 Block Public Access status was dropped for partially blocked buckets. Cloudflare R2's CDN check falsely showed "Access Denied" with custom domains.
192 +* Bug Fix: Several Media Library and attachment-detail bugs — a PHP 8.4 fatal in the image tag filter, a missing capability check, a wrong Access (public/private) value, and Customizer background image lookup for offloaded media.
193 +* Bug Fix: WooCommerce image resize/regeneration — filter stacking consolidated into one handler, with a fallback to the original file if cloud restore fails.
194 +* Bug Fix: Imagify optimization now uses a proper CDN adapter instead of stacking filters. WebP integration and Customizer crop actions no longer risk a fatal error.
195 +* Bug Fix: Settings/Configure pages no longer get stuck loading, verifying, or saving. Validation now catches unset or invalid fields, including bad JSON credential files.
196 +* Bug Fix: Settings and Dashboard pages no longer crash before a provider is configured. Dashboard media counts now aggregate correctly.
197 +* Bug Fix: Recursively nested wpmcs_status_data from status writes; repaired via DB upgrade 1.0.6.
198 +* Bug Fix: ACF cropped image original file wasn't deleted from the server.
199 +* Tweak: Redesigned plugin deactivation survey with improved validation.
200 +* Tweak: Database Upgrade progress polling no longer floods the REST API.
201 +* Feature: Storage layer now supports exact-key uploads, cross-bucket server-side copies, and connections bound to explicit (non-global) credentials — the foundation for Bucket-to-Bucket Migration (Pro).
202 +* Tweak: Multipart upload threshold is now explicitly honored on every provider, and per-object ACL headers are stripped consistently, matching this plugin's bucket-level (not per-object) visibility model.
203 +* Bug Fix: The storage "Check Status" read-access check could show a stale "Access Denied" result from CDN caching even after real access was fine — the check's dummy object and request are now marked no-cache.
204 +* Tweak: File Manager breadcrumb separator icon was rendering with excess built-in padding, making it look tiny — cropped to its actual glyph bounds.
205 +* Tweak: "Use Existing" credential-source option (reuse the currently-connected account) is now available wherever credentials are configured, including as a migration destination.
206 +* Feature: Delivery Settings — newly uploaded files get a Cache-Control header, 1 month by default; Pro can set a custom duration (or 0 for no-cache) per storage/CDN choice.
207 +* Feature: Include/Exclude Extensions fields (Pro) control which file types get uploaded to the bucket.
208 +* Bug Fix: Ajax/Mixed sync method's tick loop could silently stop after one iteration due to a redux dependency bug — affected all sync types under ajax/mixed mode.
209 +* Bug Fix: Item::update() could fail with a duplicate-key database error when moving an item to a different provider/bucket/region if a stale row already existed at the target identity.
144 210 = 1.3.11 =
145 211 * Feature: wp-config.php credentials support (WPMCS_CONFIG).
146 212 * Feature: Connection status checks for storage and CDN.
147 213 * Bug Fix: Redis Object Cache and object cache compatibility.