WP Offload Media Changelog

3.2.7 - Feb 13, 2024

  • New: Amazon S3 regions Canada West (Calgary), Asia Pacific (Melbourne) and Israel (Tel Aviv) are now selectable
  • New: DigitalOcean region Bangalore (BLR1) is now selectable
  • New: Google Cloud Storage regions Europe (Berlin), Europe (Turin), Middle East (Doha) and Middle East (Dammam, Saudi Arabia) are now selectable
  • Improvement: The as3cf_object_meta filter now also runs during storage settings validation
  • Bug fix: WP-CLI now recognizes WP Offload Media updates
  • Bug fix: Smart Plugin Manager now updates WP Offload Media on WordPress Multisite
  • Bug fix: WooCommerce integration no longer breaks when failing to resolve downloadable product path
  • Bug fix: Legacy amazon_s3 shortcodes used for WooCommerce product files with apostrophes no longer cause a database error
  • Bug fix: Private media URLs now work as expected in audio and video shortcodes
  • Bug fix: Performance improved for ACF image fields when filesize metadata is missing for offloaded and removed files
  • Bug fix: URLs for offloaded media in ACF URL and link fields are now properly rewritten
  • Bug fix: Media library files with apostrophes in their filenames no longer cause database errors
  • Bug fix: URL rewriting no longer breaks slashed serialized data with NULL values
  • Bug fix: URL rewriting on a dev site now works without a bucket being set

3.2.6 - Jan 11, 2024

  • New: WordPress 6.4 compatible
  • New: AWS PHP SDK has been updated to v3.295.8
  • Improvement: Delivery settings check request headers updated to avoid provider's erroneous hot-link protection
  • Bug fix: Invalid params given to edd_requested_file filter no longer cause errors
  • Bug fix: Corrupted amazonS3_cache records no longer cause a fatal error
  • Bug fix: Safety improved when handling serialized content

3.2.5 - Aug 24, 2023

  • New: WordPress 6.3 compatible
  • New: PHP 8.2 compatible
  • New: AWS PHP SDK has been updated to v3.279.0
  • New: Google Cloud Storage SDK has been updated to v1.33.0 (requires PHP 7.4+)
  • New: Links to plugin documentation, support, feedback, and changelog are now available in the footer of WP Admin
  • Bug fix: Delivery settings check no longer logs false message about not being able to remove test object from bucket
  • Bug fix: Delivery settings check no longer logs a "Could not get Block All Public Access status" message when using DigitalOcean Spaces

3.2.4 - Jun 26, 2023

  • Bug fix: Newly added rotated images no longer fail to automatically offload

3.2.3 - Jun 13, 2023

  • Bug fix: Broken legacy amazonS3_info metadata no longer causes upgrade routines to fail

3.2.2 - May 18, 2023

  • Bug fix: Security: Updated AWS SDK and Google Cloud SDK to address a vulnerability in guzzlehttp/psr7 as reported in CVE-2023-29197

3.2.1 - Mar 27, 2023

  • Bug fix: Saving settings no longer prevented when access credentials are missing but bucket is set
  • Bug fix: Changing delivery provider no longer prevented when delivery settings are incomplete

3.2.0 - Mar 16, 2023

  • View Release Post
  • New: The running background tool can be controlled from the navigation bar
  • New: Offload status can be seen in the navigation bar
  • New: Diagnostic Info now includes media counts by item type
  • New: Validation status for storage and delivery providers displayed on Media tab
  • New: Validation status for asset settings displayed on Assets tab
  • New: Asset URL rewriting is temporarily disabled while the domain fails validation
  • New: Tools now show their total items to process more quickly, and update progress more often
  • New: WordPress 6.2 compatible
  • Improvement: Amazon S3 buckets are now created in a way compatible with AWS API changes due in April 2023
  • Improvement: Tool specific cron schedules have been replaced by a single as3cf_tool_cron_interval entry
  • Improvement: The tool healthcheck cron now fires every minute by default instead of every 5 minutes
  • Bug fix: Confirming set up of an Origin Access Identity for Object Ownership Enforcement in Bucket Security now works as expected
  • Bug fix: Using an invalid storage provider identifier in defined settings no longer causes a fatal error
  • Bug fix: Cropping offloaded images in the standard image block no longer fails
  • Bug fix: Using Server Roles no longer needs a define in wp-config.php
  • Bug fix: SVGs now automatically offload when added to the Media Library
  • Bug fix: Legacy defines no longer show as keys used in the AS3CF_SETTINGS define
  • Bug fix: Cancelling a paused tool no longer occasionally leaves all tools disabled
  • Bug fix: The offloader tool no longer hides its errors when all media offloaded but some thumbnail sizes failed to offload
  • Bug fix: Elementor background tool no longer crashes when Elementor post meta contains unexpected data

3.1.0 - Dec 07, 2022

  • View Release Post
  • New: PHP 8.1 compatibility is now improved
  • New: Amazon S3 regions Asia Pacific (Hyderabad), EU (Spain), EU (Zurich) and Middle East (UAE) are now selectable
  • New: Google Cloud Storage regions Middle East (Tel Aviv) and Dual-Region (Asia) are now selectable
  • New: DigitalOcean region Sydney (SYD1) is now selectable
  • New: AWS PHP SDK has been updated to v3.238.6
  • New: Google Cloud Storage SDK has been updated to v1.28.1
  • Improvement: Storage Provider regions are now listed alphabetically
  • Improvement: Google Cloud Storage regions are now grouped by geographic area
  • Bug fix: Pathless external URLs entered in a post no longer cause an error when saved
  • Bug fix: Media upload time no longer degrades as the Media Library grows
  • Bug fix: Diagnostic page no longer breaks when duplicate support emails are defined in unfortunate order
  • Bug fix: Periodic updates of media offload statistics no longer time out in large multisite installs
  • Bug fix: Background tools no longer throw errors on completion in large multisite installs
  • Bug fix: Inactive background tools no longer create redundant cron schedule entries
  • Bug fix: The clear post meta cache upgrade routine now works properly on multisite subsites
  • Bug fix: Completed upgrade routines no longer create redundant cron schedule entries
  • Bug fix: Upgrade routines no longer try to run on non-primary subsites
  • Bug fix: Custom table format upgrades no longer run unnecessarily
  • Bug fix: Settings REST API endpoints are no longer enabled if unusable
  • Bug fix: Only offloaded items with valid attachment IDs are retrieved from external cache
  • Bug fix: Legacy bucket names that include uppercase letters or underscores can now be selected
  • Bug fix: Offloading already-edited files no longer causes issues with filename uniqueness checks

3.0.2 - Oct 05, 2022

  • Bug fix: ACF integration no longer breaks sites using closures in ACF field config (edge case)
  • Bug fix: Assets Pull no longer handles enqueue hooks if not rewriting asset URLs
  • Bug fix: Invalid asset URLs no longer cause an error when filtered by Assets Pull
  • Bug fix: The Offload metabox for attachments no longer has issues for some browser and screen resolution combinations

3.0.1 - Sep 30, 2022

  • Bug fix: License & support info is now properly populated after upgrade from 2.x

3.0.0 - Sep 29, 2022

  • View Release Post
  • New: Fresh new settings page UI! 🎉
  • New: The Media Library can be filtered by whether items are offloaded, or which bucket they’re in
  • New: The Media Library can be filtered to offloaded items that are public or private in the bucket
  • New: The Media Library now has Bucket and Access columns to show offload information
  • New: Assets Pull addon functionality now integrated into the plugin for Gold+ license holders
  • New: Advanced Custom Fields Pro now supported
  • New: Authenticated WP-REST-API endpoints added for managing settings
  • New: Amazon S3 Object Ownership controls are now supported
  • New: Added Asia Pacific (Jakarta) Amazon S3 region
  • New: Added Columbus, Dallas, Toronto, Santiago, Warsaw, Milan, Paris, Madrid, Delhi, Jakarta and Melbourne Google Cloud Storage regions
  • New: AWS PHP SDK updated to v3.222.1
  • New: Google Cloud Storage SDK updated to v1.26.3
  • New: PHP 7.2 or later required
  • New: WordPress 6.1 compatible
  • Improvement: Prompt added to offload local media items when turning on automatic offloading
  • Improvement: Prompt added to download all offloaded media when turning off the remove files from local setting
  • Improvement: Error notices for tools more consistently include Source Type and Source ID
  • Improvement: Error notices for tools that include Mime Type information are easier to read
  • Improvement: CloudFront Private Media handling UI now use the recommended Trusted Key Groups terminology (CloudFront Key Pairs are still usable)
  • Improvement: Settings changes by another user or in wp-config.php are detected and reflected in UI
  • Improvement: A page refresh is requested if settings changes by another user conflict with unsaved changes
  • Improvement: Important error notices on the settings page are less easy to miss when displayed
  • Improvement: The Custom Domain (CNAME) can no longer be left empty if enabled
  • Improvement: The format of the entered Custom Domain (CNAME) for a CDN is now validated before being able to save settings
  • Improvement: It is no longer possible to mistake the example URL preview for an offloaded media item
  • Improvement: The relationship between settings and the example URL preview is now easier to understand
  • Improvement: Some common AWS S3 errors are caught and shown with easier to understand messages
  • Improvement: Media settings can now be used even if previously defined Storage Provider credentials have been removed but bucket still set (useful for development or test installs cloned from large production sites)
  • Bug fix: Remove from Bucket tool no longer forgets about offloads to other providers when failing to remove their objects
  • Bug fix: Renaming the plugin slug to match the Lite plugin’s slug no longer risks retrieving updates from
  • Bug fix: An empty bulk actions button is no longer shown in the Media Library grid mode when Storage Provider credentials are not set
  • Bug fix: Legacy addons no longer cause fatal errors when activated
  • Bug fix: Using any Media Library bulk action no longer resets the filters
  • Bug fix: Available plugin updates are no longer hidden when license expired or limit exceeded
  • Bug fix: Plugin updates now properly display their compatibility with the installed version of WordPress
  • Bug fix: The availability of new plugin updates is no longer checked every time the Plugins page is loaded
  • Bug fix: Updating the plugin with “Update Now” in the Plugins page no longer fails when WP Offload SES is installed and active
  • Bug fix: Saving posts with serialized data in post_content that include offloaded URLs now have correct string length values
  • Bug fix: EC2 hosted sites using IAM Roles no longer get an error when retrieving credentials from the instance profile metadata service in some instances
  • Bug fix: URLs are no longer rewritten for media offloaded to a different storage provider than currently configured
  • Bug fix: Creating a bucket on DigitalOcean Spaces no longer fails with 403 Forbidden error
  • Bug fix: Rewrite Media URLs can now be turned off for installs updated from pre WP Offload S3 1.0
  • Bug fix: Legacy AWS access key defines no longer cause issues with upgrade routines
  • Bug fix: Getting Block All Public Access status no longer fails for recently created buckets
  • Bug fix: Images with non-numeric width or height values no longer cause fatal errors

2.6.2 - Apr 04, 2022

  • Bug fix: Upgrade routine no longer risks breaking items when external object cache is in use
  • Bug fix: Error notices from the download tool are no longer cluttered with raw error messages from provider
  • Bug fix: Bulk handling tools now show a maximum of 100 error messages in the UI

2.6.1 - Mar 21, 2022

  • Bug fix: Local files are no longer removed if as3cf_pre_upload_attachment filter is used to abort upload
  • Bug fix: Remove from Bucket no longer proceeds if missing local file cannot be retrieved from bucket
  • Bug fix: BuddyBoss: Integration is no longer enabled if BuddyPress is active
  • Bug fix: BuddyBoss: Images are no longer repeated in posts when integration is active
  • Bug fix: BuddyBoss: Offloaded custom default avatar and cover images are now displayed on the frontend
  • Bug fix: BuddyBoss: Enabling custom default avatar or cover images no longer stops download or remove tools from completing
  • Bug fix: BuddyBoss: Custom default avatar and cover images are now included when bulk offloading existing media
  • Bug fix: BuddyBoss: Removing a custom default avatar or cover image now also removes it from the bucket
  • Bug fix: BuddyBoss: Removing a custom default cover image no longer results in an error
  • Bug fix: BuddyBoss: Adding a new avatar that is offloaded and removed from server now displays properly without a page refresh

2.6.0 - Mar 09, 2022

  • View Release Post
  • New: BuddyBoss Platform: Avatars and cover images for users and groups are now offloaded
  • New: WP Offload Media is now compatible with WordPress 5.9 and Full Site Editing
  • Improvement: Offloaded thumbnail sizes are now tracked for better handling of changes to registered sizes
  • Improvement: Offloads and other storage provider actions are faster
  • Bug fix: URL rewriting now works in the Full Site Editor
  • Bug fix: Offloaded images are now shown when re-editing a Block Template or Template Part
  • Bug fix: URL rewriting now works for Widgets migrated to a Widget Sidebar Block
  • Bug fix: Objects are no longer left in the bucket when deleting a Media Library item with many changes to its thumbnail sizes
  • Bug fix: Enable Media Replace: Thumbnails are now generated while using Remove Files From Server
  • Bug fix: Enable Media Replace: Original files are no longer left on the server while using Remove Files From Server
  • Bug fix: MetaSlider Pro: URL rewriting now works for Layer Slides
  • Bug fix: WooCommerce: Private offloading of WooCommerce downloads once again works following changes introduced by WordPress 5.9

2.5.6 - Aug 25, 2021

  • Bug fix: License checks result in unnecessary requests to our API when transients aren’t correctly configured
  • Bug fix: Some third party Elementor widgets cause server side errors

2.5.5 - Jul 19, 2021

  • New: WordPress 5.8 compatible
  • Bug fix: URLs not rewritten when using Elementor's inline CSS option
  • Bug fix: URL rewriting stops Elementor's custom fonts from being used
  • Bug fix: Signed GCS URLs broken when updating a post
  • Bug fix: Incorrect mime type set on scaled image's bucket object when thumbnail format differs from original file's format

2.5.4 - Mar 09, 2021

  • Bug fix: In rare cases Elementor Analyze & Repair tool might corrupt page structure
  • Bug fix: Notice to run Elementor Analyze & Repair tool shown if Elementor not active but previously was

2.5.3 - Mar 03, 2021

  • View Release Post
  • New: Full integration with Elementor and Elementor Pro
  • New: Added DigitalOcean region San Francisco 3
  • New: WordPress 5.7 compatible
  • Bug fix: Domain mapping not handled correctly when the local URL includes a port number
  • Bug fix: In some unusual configurations the upgrade routine uses incorrect name for multisite blogs table

2.5.2 - Dec 14, 2020

  • New: AWS PHP SDK 3.168.0
  • New: Google Cloud Storage SDK 1.23.0
  • Improvement: Faster saving of posts with many external links
  • Improvement: Faster URL rewriting when Force HTTPS setting being used but is not needed
  • Bug fix: PHP Fatal error on the settings page when using PHP 8.0
  • Bug fix: PHP Warning: The magic method Integration_Manager::__wakeup() must have public visibility in .../classes/pro/integration-manager.php on line 56

2.5.1 - Nov 25, 2020

  • New: WordPress 5.6 compatible
  • New: PHP 8.0 compatible
  • Bug fix: PHP Warning: Creating default object from empty value in .../vendor/deliciousbrains/updates.php on line 156
  • Bug fix: Unexpectedly asked to select bucket after saving settings when legacy access key named constants defined
  • Bug fix: srcset missing for some images
  • Bug fix: Error saving item during Metadata upgrade in some cases

2.5 - Nov 11, 2020

  • View Release Post
  • New: WooCommerce Integration: Existing downloadable product files automatically served from cloud storage after offload
  • New: WooCommerce Integration: Downloadable product file URLs now show cloud storage URL when editing a product
  • New: WooCommerce Integration: WooCommerce S3 Storage shortcodes rewritten to standard URLs if Media Library item available
  • New: WooCommerce Integration: Verify and update downloadable products tool converts shortcodes to standard URLs where possible
  • New: WooCommerce Integration: Verify and update downloadable products tool ensures offloaded media used in products is private in cloud storage
  • New: WooCommerce Integration: [amazon_s3 id=123] format shortcode deprecated
  • New: Add Metadata tool enables adoption of existing Media Library items already offloaded to cloud storage by other means
  • Improvement: Error notice shown when plugin's required custom table(s) missing
  • Improvement: Diagnostic Info shows status of plugin's required custom tables
  • Bug fix: Signed CloudFront URLs do not work when used in File Download block
  • Bug fix: wp_get_original_image_path function does not return provider URL when local files removed
  • Bug fix: File missing notices recorded in debug.log when regenerating thumbnails and Remove Files From Server turned on

2.4.4 - Sep 08, 2020

  • Improvement: Updated AWS PHP SDK to v3.151.6
  • Bug fix: Files for duplicate thumbnail sizes not removed from server after initial offload
  • Bug fix: PHP Fatal error: Class 'DeliciousBrainsWP_Offload_MediaAws3SymfonyPolyfillIntlIdnIdn' not found
  • Bug fix: PHP Recoverable fatal error: Object of class WP_Error could not be converted to string in .../wp-includes/post.php on line 504
  • Bug fix: PHP message: PHP Warning: is_readable(): open_basedir restriction in effect
  • Bug fix: URLs not rewritten for RSS feed enclosures

2.4.3 - Sep 01, 2020

  • Improvement: Updated AWS PHP SDK to v3.151.3
  • Bug fix: PHP Fatal error: Class 'DeliciousBrainsWP_Offload_MediaAws3SymfonyPolyfillIntlIdnIdn' not found

2.4.2 - Aug 27, 2020

  • Improvement: Updated AWS PHP SDK to v3.150.1
  • Bug fix: Media Library statistics gathering causing database performance issues
  • Bug fix: License checks by multiple multisite network subsites causing performance issues
  • Bug fix: srcset not generated for featured image when using Divi Builder
  • Bug fix: Newly offloaded image URLs not rewritten in Divi Theme Builder modules
  • Bug fix: Image thumbnail URLs in custom HTML not rewritten to delivery provider URLs
  • Bug fix: Background processes do not start when PHP memory limit in gigabytes
  • Bug fix: PHP Fatal error: require(): Failed opening required '.../vendor/Aws3/Aws/Sts/StsClient.php'
  • Bug fix: AWS SDK "Warning: is_readable(): open_basedir restriction in effect" message from Regional Endpoint check
  • Bug fix: Bottom and right button borders in settings page are clipped when focused

2.4.1 - Jul 21, 2020

  • Bug fix: Fatal Error with EWWW Image Optimizer 5.5 or earlier installed
  • Bug fix: AWS SDK "Warning: is_readable(): open_basedir restriction in effect" message when Use ARN Region in effect
  • Bug fix: "Data you have entered may not be saved" notice shown incorrectly when leaving settings page
  • Bug fix: Underscores not allowed in CloudFront Private Key File Path

2.4 - Jul 14, 2020

  • New: Prompt to move your media to new storage path when you update path settings
  • New: Setting to choose a Delivery Provider (i.e. S3, CloudFront, another CDN)
  • New: Configure CloudFront to serve protected media via signed URLs and a custom domain
  • New: Support for Block All Public Access setting on S3 buckets
  • New: Raw S3 URLs use bucket in domain rather than path where possible as per changes required by AWS
  • New: Raw S3 URLs use dot rather than dash between s3 and region name as per changes required by AWS
  • New: Added S3 regions for Africa (Cape Town), Asia Pacific (Hong Kong), EU (Milan), EU (Stockholm), and Middle East (Bahrain)
  • New: Added GCS regions for Salt Lake City, Las Vegas, Zürich, Osaka, Seoul, EUR4 (dual-region), and NAM4 (dual-region)
  • Improvement: Six bulk action buttons collapsed into single dropdown in Media Library grid view
  • Improvement: All settings locked to avoid problems when background tools are processing
  • Improvement: Updated AWS PHP SDK to v3.133.40
  • Improvement: Updated Google Cloud Storage SDK to v1.18.0
  • Improvement: S3 regions for China no longer hidden (configuration via AWS Console still required)
  • Bug fix: Performance issues caused by frequent requests to the license API, especially on busy sites
  • Bug fix: Performance issues caused by counting media, especially on large multisite installs
  • Bug fix: Private images not showing in grid mode Media page overlay
  • Bug fix: Public image thumbnails not showing in grid mode Media page when original is private
  • Bug fix: URL rewriting sometimes fails for sites hosted on Windows
  • Bug fix: URL rewrite fails for image when original upload has size in file name
  • Bug fix: External URLs rewritten to local URLs when they shouldn't
  • Bug fix: StreamWrappers don't work with private buckets
  • Bug fix: Database error when inserting media library item and using HyperDB
  • Bug fix: S3 bucket link in settings no longer goes direct to bucket contents
  • Bug fix: New uploads slow with very large Media Library
  • Bug fix: Migration to custom table very slow with large postmeta tables
  • Bug fix: Signed GCS URLs have incorrect expires value
  • Bug fix: The use-server-roles AS3CF_SETTINGS value is not properly reflected in Diagnostic Info
  • Bug fix: Unknown column '2019/12/some-file-name.pdf' in 'where clause' when using managed MySQL on DigitalOcean
  • Bug fix: WordPress database error Expression #1 of ORDER BY clause is not in SELECT list when using MySQL8
  • Bug fix: WordPress forces HTTP in Edit Media page if site is not HTTPS, breaking remote URLs that require HTTPS

2.3.2 - Dec 09, 2019

  • Improvement: Reduced database queries when external object cache available
  • Improvement: Tested PHP 7.4
  • Bug fix:

    Uncaught Error: Call to undefined function DeliciousBrainsWP_Offload_MediaGcpGuzzleHttpchoose_handler()

  • Bug fix:

    SVG files not automatically offloaded

2.3.1 - Nov 19, 2019

  • Bug fix: Uncaught Error: Cannot use object of type Media_Library_Item as array in wp-includes/media.php:217
  • Bug fix: Image not automatically offloaded if subsizes not expected

2.3 - Nov 12, 2019

  • View Release Post
  • New: Upgrade routine to migrate offload data to custom table
  • New: Support for changed Media Library upload process introduced with WordPress 5.3
  • New: Support for new "-scaled" and "-rotated" images introduced with WordPress 5.3
  • New: Support for customizer changes introduced with WordPress 5.3
  • New: Offload new "original_image" file introduced with WordPress 5.3
  • New: Error notice displayed when background tool stuck and Site Health loopback requests test failing
  • Improvement: Performance boost during both page display and save
  • Improvement: Better detection of offloaded media URLs during page display
  • Improvement: Divi Page Builder integration supports more than just Divi theme, e.g. Extra theme
  • Bug fix:

    New Media Library upload given same local file name as offloaded and removed file after Remove Files From Server turned off

  • Bug fix:

    PHP message: PHP Deprecated: strpos(): Non-string needles will be interpreted as strings in the future

  • Bug fix:

    Deleting a Media Library item from one language removes bucket objects still used by other WPML duplicates

  • Bug fix:

    Using Remove from Bucket on a Media Library item from one language removes bucket objects still used by other WPML duplicates

  • Bug fix:

    Bulk offloader fails to offload original Media Library item in WPML duplicate set when Remove Files From Server turned on

  • Bug fix:

    Enable Media Replace integration does not remove old file name from bucket

  • Bug fix:

    Enable Media Replace integration does not generate new object version when file replaced without rename

  • Bug fix:

    Divi Page Builder's Gallery module does not display thumbnails for remote only images during edit

2.2.1 - Jul 18, 2019

  • Improvement: Remove Files From Server option now warns about media backups when switched on
  • Bug fix: Undefined index in file amazon-s3-and-cloudfront-pro/classes/filters/as3cf-local-to-s3.php at line 286
  • Bug fix: API calls duplicated in settings page
  • Bug fix: API timeout too long

2.2 - Jun 11, 2019

  • View Release Post
  • New: Bulk offload, download, and remove from bucket tools now work in the background
  • New: Pie chart and background tool progress bars now show percentage and related counts when hovered over
  • New: Use IAM Roles without having to update wp-config.php
  • New: Frankfurt (FRA1) region now supported on DigitalOcean Spaces
  • Improvement:

    Background tools start processing and progress faster, especially on large multisites with thousands of subsites

  • Improvement:

    WP dashboard performance

  • Bug fix: Bulk offload stops at license media limit even though site doesn't count towards limit
  • Bug fix: Using remove from bucket tool doesn't update license limit when cancelled
  • Bug fix: Uploaded media files with uppercase extensions get second extension added

2.1.1 - Apr 29, 2019

  • New: Multisite domain mapping via WordPress MU Domain Mapping plugin is now supported
  • Improvement: Local to Provider content filtering performance improvements
  • Improvement: Warning notice shown when changing storage provider and media already offloaded
  • Bug fix:

    Media title not retaining characters stripped from filename

  • Bug fix:

    Warning: is_readable(): open_basedir restriction in effect. File(~/.aws/config) is not within the allowed path(s)

  • Bug fix:

    Fatal error when GCS Key File not accessible

  • Bug fix:

    Non-image offloads on subsites with 4 digit IDs get duplicate subsite ID in bucket path

  • Bug fix:

    No srcset added to img tag if filename includes non-ASCII characters

  • Bug fix:

    Full size image URL saved to img tag src attribute when thumbnail picked if filename includes non-ASCII characters

  • Bug fix:

    License information in Plugins page looks inconsistent and links not properly separated

  • Bug fix:

    License related notices in settings page duplicated

2.1 - Mar 05, 2019

  • View Release Post
  • New: Google Cloud Storage is now supported
  • New: Added "Remove Local Files" bulk/row/details Media page actions
  • New: Added "Make Private/Public in Bucket" bulk/row Media page actions
  • Improvement: AWS PHP SDK updated
  • Improvement: Diagnostic Info shows more complete settings information
  • Bug fix:

    Copy files to new bucket prompt incorrectly shown after changing storage provider

  • Bug fix:

    PHP Fatal error: Allowed memory size exhausted when using Enable Media Replace

  • Bug fix:

    Year/Month path prefix incorrectly set in bucket for non-image media files

  • Bug fix:

    PHP Fatal error: Class 'XMLWriter' not found

  • Bug fix:

    PHP Fatal error: Uncaught Error: Call to undefined method ...Aws3AwsS3ExceptionS3Exception::search() in .../classes/providers/aws-provider.php:439

  • Bug fix:

    PHP Warning: filesize(): stat failed for [file-path] in classes/amazon-s3-and-cloudfront.php on line 1309

2.0.2 - Dec 19, 2018

  • New: Compatibility with Assets Pull addon 1.1.1

2.0.1 - Dec 18, 2018

  • Improvement: Streamlined UI for setting Storage Provider and Bucket
  • Improvement: Tested WordPress 5.0
  • Bug fix: Background images on global Divi library sections not filtering to remote version
  • Bug fix: Divi Frontend Builder does not filter to remote image URLs on load
  • Bug fix: Corrupt _wp_attachment_metadata causes download tool to fail
  • Bug fix: Change Provider link shown during copy between buckets
  • Bug fix: Failing install and download links shown for addons when license expired
  • Bug fix: On/Off switches in settings look reversed
  • Bug fix: Latest upgrade routine runs on fresh install
  • Bug fix: Defined settings still found in database
  • Bug fix: More Info links in Storage Provider settings incorrect

2.0 - Sep 25, 2018

  • View Release Post
  • New: DigitalOcean Spaces is now supported
  • New: Plugin name updated from WP Offload S3 to WP Offload Media
  • Improvement: More logical UI layout and better description of each setting

1.7.2 - Aug 02, 2018

  • Bug fix: Images remotely edited via stream wrapper sometimes set as private on S3

1.7.1 - Jul 03, 2018

  • Bug fix: Error getting bucket region
  • Bug fix: Fatal error when child theme has missing or broken style.css
  • Bug fix: Child themes with missing or broken style.css break diagnostic info

1.7 - Jun 25, 2018

  • New: Using AWS PHP SDK v3
  • New: Requires PHP 5.5+
  • New: Divi Visual Builder integration added
  • New: as3cfpro_woo_use_attachment_capability filter added to change capability required for adding offloaded files to WooCommerce product
  • Improvement: Supported AWS S3 regions updated and names changed to match current AWS nomenclature
  • Improvement: Tested WordPress 4.9.6
  • Improvement: Tested Gutenberg 3.0
  • Bug fix:

    PHP Warning: Declaration of AS3CF_Stream_Wrapper::register should be compatible with AwsS3StreamWrapper::register

  • Bug fix:

    File size not stored in _wp_attachment_metadata for audio/video files

  • Bug fix:

    Image srcset uses full size image if metadata size is stored as string

  • Bug fix:

    PHP Warning: preg_match() expects parameter 2 to be string, array given

  • Bug fix:

    SQL syntax error when using attachment_url_to_postid() with non-ascii file name

  • Bug fix:

    Remove All Files From Server tool does not use as3cf_preserve_file_from_local_removal filter

  • Bug fix:

    Remove All Files From Server tool does not store total file size info in metadata

  • Bug fix:

    WooCommerce product files with over 32 characters in name not downloadable

  • Bug fix:

    Downloading offloaded SVG file results in compressed file

  • Bug fix:

    Copy to new bucket fails for non-ascii file names

1.6.2 - Feb 22, 2018

  • Bug fix:

    Fatal error: Uncaught Error: Call to undefined method ComposerAutoloadClassLoader::setClassMapAuthoritative()

  • Bug fix:

    AWS keys stored in database by Amazon Web Services plugin are not being migrated to new settings record

  • Bug fix:

    Notice in settings page that Amazon Web Services plugin no longer required is not being shown when Amazon Web Services active

1.6.1 - Feb 20, 2018

  • Bug fix: Fatal error in stream wrapper setup when AWS Keys not set

1.6 - Feb 20, 2018

  • View Release Post
  • New:

    Amazon Web Services plugin is no longer required to run WP Offload S3

  • New:

    Added <a href="">as3cf_local_domains</a> filter for when site content is updated through multiple domains

  • Improvement:

    AWS keys and license now set in new "Settings" tab, "License & Support" tab renamed to "Support"

  • Improvement:

    Minor tweaks to settings page UI including right aligning tabs and consistent title across Lite and Pro plugins

  • Improvement:

    cURL version, theme version and parent theme information added to diagnostics

  • Bug fix: Incompatible with plugins that include AWS PHP SDK v3
  • Bug fix: Regenerate Thumbnails v3.0+ does not work with Remove Files From Server option
  • Bug fix: "Warning: count(): Parameter must be an array or an object that implements Countable" error with PHP 7.2
  • Bug fix: Force HTTPS not being applied to non-srcset S3 URLs in pages served over HTTP
  • Bug fix: Content URLs not filtered to S3 URLs if AWS keys not set
  • Bug fix: URL preview can be coerced to display invalid URL
  • Bug fix: Changes to upload made via as3cf_object_meta filter are not reflected in amazonS3_info records
  • Bug fix: Settings link not showing in network admin plugins page
  • Bug fix: Media Library Limit checked too often
  • Bug fix: Upload tool processes more items than batch limit allows
  • Bug fix: Upload tool tries to processes items in remaining network blogs after batch timeout reached
  • Bug fix: Edit attachment links missing in upload errors notice on multisites

1.5.1 - Nov 17, 2017

  • New: Compatibility with new Assets Pull addon
  • New: Compatibility with HTML Widget
  • New: Dismissible admin notice that WP Offload S3 will soon require PHP 5.5+
  • Improvement: Compatibility with WordPress 4.9
  • Improvement: All “Remove from S3” links and buttons now download files missing from server before removing from S3
  • Bug fix: Mass upload/download/delete fails on large multisites
  • Bug fix: Enable Media Replace can overwrite existing S3 file for different item
  • Bug fix: Enable Media Replace still uploads to S3 when "Copy to S3" turned off
  • Bug fix: Incorrect region used when changing bucket by defining it in WPOS3_SETTINGS
  • Bug fix: Upload tool's time displays incorrectly for long jobs in backgrounded browser
  • Bug fix: Media library notices render inside the upload tool
  • Bug fix: Upload tool pie chart shows NaN% when all media deleted
  • Bug fix: Upload tool state changes when percentage below 1%
  • Bug fix: Features disabled when license expires
  • Bug fix: Error logged during attempted upload of WPML generated duplicate items
  • Bug fix: Plugins row notices look ugly when showing connection error
  • Bug fix: Save notices disappear on settings page
  • Bug fix: Improper use of jQuery.attr logged to browser console
  • Bug fix: 502 error logged when upload tool has many errors
  • Bug fix: WooCommerce downloads getting "reduce your request rate" notices from S3
  • Bug fix: "Content Filtering Upgrade" URL in notice incorrect
  • Bug fix: "Remove all files from S3" broken when cancelling a paused batch before it completes
  • Bug fix: "More info" links can be broken across two lines

1.5 - Jul 11, 2017

  • New: Compatibility with WordPress 4.8
  • New: Tool to copy all Media Library files between buckets
  • New: Compatibility addons are no longer required
  • New: Support for WP CLI wp media regenerate
  • Improvement: Intermediate image sizes are now passed through the as3cf_object_meta filter
  • Improvement: Mass upload tool now reports missing intermediate image sizes
  • Improvement: Content filtering cache now uses the external object when available
  • Bug fix: Timeouts on large multisite installs due to excessive database queries on upgrade routines
  • Bug fix: Video files with private ACL not working with WordPress's default media player
  • Bug fix: JavaScript alert sometimes shown when navigating away from settings screen
  • Bug fix: Bucket permissions check not using configured path
  • Bug fix: WordPress image editor sometimes shows a 404 when 'Remove Files From Server' enabled
  • Bug fix: Notice: Undefined index: region

1.4 - Mar 14, 2017

  • View Release Post
  • New:

    Tool to delete all Media Library files from the local server that have already been uploaded to S3

  • New:

    Compatibility with Advanced Custom Fields

  • New:

    use_as3cf_media_actions capability for controlling which users have access to on-demand Media Library actions

  • New:

    as3cf_filter_post_local_to_s3 and as3cf_filter_post_s3_to_local filters added for filtering S3 URLs in custom content

  • Improvement: Dismiss individual file errors when using the upload and download tools
  • Improvement: Media Library URL updated when ACL toggled
  • Improvement: Ensure files uploaded using media_handle_sideload have unique filename on S3 when 'Remove Files From Server' enabled
  • Bug fix: Files uploaded to S3 with empty filenames when the filename started with non-latin characters
  • Bug fix: Audio files with private ACL not working with WordPress's default media player
  • Bug fix: S3 API version not passed to S3 client
  • Bug fix: Content added to text widgets via the Customizer not saved
  • Bug fix: Original file not removed locally when cropped via the Customizer and 'Remove Files From Server' enabled
  • Bug fix: Incorrect Media Library URLs saved to the database when WordPress installed in a subdirectory
  • Bug fix: S3 file count incorrect when Media Library items have multiple amazonS3_info keys

1.3.1 - Jan 12, 2017

  • Improvement: Filter custom CSS - S3 URLs will no longer be saved to the database
  • Bug fix: PDF previews have incorrect MIME type
  • Bug fix: Original PDF not removed from S3 on attachment delete when image previews exist

1.3 - Jan 04, 2017

  • New: Tool to download offloaded files then remove them from S3
  • New: Upgrade routine to replace all S3 URLs in post excerpts with local URLs
  • Improvement:

    Sidebar progress bar was confusing, seemed like something was currently uploading, replaced with pie chart

  • Improvement:

    Reduced number of database queries on front-end requests

  • Improvement:

    Allow expires time to be filtered for private content using the as3cf_expires filter

  • Bug fix: Image srcset not correctly applied when filenames contain special characters
  • Bug fix: Mass upload tool would only process the first 100 blogs in a multisite install
  • Bug fix: Multisite installs sometimes counted by the license API multiple times

1.2.3 - Nov 28, 2016

  • Improvement: Performance improvements for URL filtering, especially on large sites
  • Bug fix: Private URL signing params stripped in some circumstances

1.2.2 - Nov 02, 2016

  • Improvement: Better content filtering support for third party plugins and themes
  • Bug fix: PHP Warning: Division by zero

1.2.1 - Oct 17, 2016

  • New: Filter post excerpts - S3 URLs will no longer be saved to the database
  • Bug fix: PHP 5.3 Fatal error: Using $this when not in object context
  • Bug fix: Query string parameters incorrectly encoded for Media Library items

1.2 - Oct 04, 2016

  • New:

    Filter post content. S3 URLs will no longer be saved to the database

  • New:

    Upgrade routine to replace all S3 URLs in content with local URLs

  • New:

    Support for theme custom logos

  • New:

    Control the ACL for intermediate image sizes using the as3cf_upload_acl_sizes filter

  • Bug fix: File names containing special characters double encoded
  • Bug fix: srcset not working for file names containing special characters
  • Bug fix: Incorrect placeholder text for ‘Path’ option
  • Bug fix: Objects in root of bucket not deleted when removed from the Media Library
  • Bug fix: No longer use deprecated functions in WordPress 4.6
  • Bug fix: Don’t delete local file when ‘Remove Files From Server’ enabled and upload to S3 fails
  • Bug fix: 'Install & Activate Addon' button not working from compatibility notices

1.1.7 - Sep 19, 2016

  • New: Compatibility with Assets addon 1.2.1

1.1.6 - Sep 01, 2016

  • New: Compatibility with WordPress 4.6
  • Improvement: No longer delete plugin data on uninstall. Manual removal possible, as per this doc

1.1.5 - Jul 27, 2016

1.1.4 - May 30, 2016

  • New: Now using simpler Force HTTPS setting, removed redundant Always Use HTTP setting
  • New: as3cf_cloudfront_path_parts filter allows changing served CloudFront path (useful when distribution pulls subdirectory)
  • Improvement:

    Better compatibility with non-standard notices from other plugins and themes

  • Improvement:

    Added basic auth and proxy info to diagnostic info

  • Improvement:

    Added allow_url_fopen status to diagnostic info

  • Improvement:

    Added memory usage to diagnostic info

  • Improvement:

    Ensure notice text is 800px or less in width

  • Improvement:

    Reduced database queries on settings screen

  • Improvement:

    Clicking "enter your license here" in Plugins listing now focuses on the license textbox on Settings tab

  • Improvement:

    Batch Find & Replace complete messages wait until all queued batches complete

  • Bug fix: Error when _wp_attachment_data metadata contains serialized WP_Error
  • Bug fix: Find & Replace modal still showing when clicking 'No' to the no local file warning
  • Bug fix: "Remove from S3" success notice has incorrect count when using Find & Replace
  • Bug fix: Find & Replace modal not showing when Media Library item's copy/remove S3 row action clicked before page finishes loading

1.1.3 - Apr 12, 2016

  • New: Compatibility with WordPress 4.5
  • Bug fix: Unable to upload new files to S3 when license expired or limit reached
  • Bug fix: Mass upload tool fails when a large amount of local files are missing

1.1.2 - Mar 23, 2016

  • Bug fix: Don't replace srcset URLs when Rewrite File URLs option disabled
  • Bug fix: Fatal error: Cannot redeclare as3cf_get_secure_attachment_url()
  • Bug fix: Download tool prompt not displaying on plugin deactivation
  • Bug fix: Unlimited license incorrectly calculating allowed upload limit
  • Bug fix: Uninstall would run for Lite version even if Pro version installed

1.1.1 - Mar 15, 2016

  • Bug fix: Fatal error on plugin activation

1.1 - Mar 08, 2016

  • View Release Post
  • New: "WP Offload S3 - Pro Upgrade" plugin is now "WP Offload S3" and no longer requires the free plugin
  • New: Define any and all settings with a constant in wp-config.php
  • New: Documentation links for each setting
  • New: Tool to detect all files missing from your server, download them from S3, and replace URLs
  • New: License usage now based on number of items offloaded to S3 rather than total attachments
  • New: Addon for ACF Image Crop support
  • New: Toggle S3 file permissions private/public
  • New: Link to attachment page in notice after copy to S3
  • New: Filter to ignore mime types using the uploader tool
  • New: Filter to exclude files from being subject to the "Remove Files From Server" setting
  • Improvement: Simplified domain setting UI
  • Improvement: Far future expiration header set by default
  • Improvement: Newly created bucket now immediately appears in the bucket list
  • Improvement: Cleanup user meta on uninstall
  • Improvement: WP Retina 2x integration removed
  • Improvement: Upload latest attachments first when using the uploader tool
  • Improvement: Only perform find and replace of URLs on certain post types for performance
  • Bug fix:

    Year/Month folder structure on S3 not created if the ‘Organise my uploads into month and year-based folders’ WordPress setting is disabled

  • Bug fix:

    Responsive srcset PHP notices

  • Bug fix:

    Compatibility addon notices displayed to non-admin users

  • Bug fix:

    Potential PHP fatal error in MySQL version check in diagnostic log

  • Bug fix:

    Missing image library notices displaying before plugin is setup

  • Bug fix:

    URL find and replace fails if 'Rewrite File URLs' setting is off

  • Bug fix:

    Find and replace modal prompt hidden after previous dismissal

  • Bug fix:

    Uploader tool notice displaying 100% when some attachments left to upload

  • Bug fix:

    Copy back from S3 fails if the local directory doesn't exist

1.0.5 - Feb 03, 2016

  • Improvement: Compatibility with WP Offload S3 Assets 1.1

1.0.4 - Nov 12, 2015

  • Improvement: Improve wording of compatibility notices
  • Bug fix: Background processes not completing due to SSL verification error
  • Bug fix: Empty notices shown in WordPress admin area after dismissing find and replace notice

1.0.3 - Nov 02, 2015

  • Improvement: Show a warning when third party plugins are detected that require a compatibility addon

1.0.2 - Oct 27, 2015

  • New: Addon for WPML support
  • New: Addon for Enable Media Replace support
  • New: Addon for Meta Slider support
  • Improvement: Dismissible notices show between page loads until dismissed
  • Improvement: Clear upload errors on 100% success
  • Improvement: Fix Media Library bulk action buttons spacing on certain screen resolutions
  • Bug fix: PHP notice 'Undefined index: blog_id'
  • Bug fix: Mass upload of existing media stuck on 'Initiating upload'
  • Bug fix: Find and replace fails on legacy multisite installs
  • Bug fix: Mass upload notice not shown when upload cancelled or complete

1.0.1 - Aug 27, 2015

  • Improvement: Dismissed license notices reappear when the license state has changed
  • Improvement: Don't show activation warnings when access keys not defined
  • Improvement: More intelligent license notices
  • Bug fix: NaN% shown on existing media upload modal
  • Bug fix: Multiple instances of the existing media upload modal allowed to proceed
  • Bug fix: Find and replace modal dismissible when performing actions
  • Bug fix: Multiple occurances of loading spinner on support tab when quickly switching tabs
  • Bug fix: Enable Media Replace plugin not replacing S3 URLs within content

1.0 - Aug 17, 2015

  • New: Initial Release