{"id":280380,"date":"2026-02-27T08:42:50","date_gmt":"2026-02-27T08:42:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/swift-offload\/"},"modified":"2026-02-27T08:42:23","modified_gmt":"2026-02-27T08:42:23","slug":"swift-offload","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/swift-offload\/","author":23410864,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.3","stable_tag":"1.0.3","tested":"6.9.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Swift Offload","header_author":"Swift Plugins","header_description":"Offload WordPress media files to Amazon S3, S3-compatible storage, and serve via CloudFront CDN with advanced management tools.","assets_banners_color":"","last_updated":"2026-02-27 08:42:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/swiftplugins.pro\/swift-offload","header_author_uri":"https:\/\/swiftplugins.pro","rating":0,"author_block_rating":0,"active_installs":0,"downloads":186,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"swiftplugins","date":"2026-02-27 08:42:23"}},"upgrade_notice":{"1.0.3":"<p>Fixes WordPress.org plugin review issues: SQL safety, plugin deactivation compliance, readme corrections.<\/p>","1.0.2":"<p>Fixes WordPress.org review issues: proper asset enqueuing, source code included, security improvements.<\/p>","1.0.0":"<p>Initial release of Swift Offload.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard overview","2":"Storage configuration","3":"CDN settings","4":"Media management"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[6918,3863,10725,255105,217],"plugin_category":[59],"plugin_contributors":[256725],"plugin_business_model":[],"class_list":["post-280380","plugin","type-plugin","status-publish","hentry","plugin_tags-amazon-s3","plugin_tags-cdn","plugin_tags-cloud-storage","plugin_tags-media-offload","plugin_tags-s3","plugin_category-utilities-and-tools","plugin_contributors-swiftplugins","plugin_committers-swiftplugins"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/swift-offload.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Swift Offload<\/strong> is a powerful WordPress plugin that offloads your media library to cloud storage and delivers content through a CDN for improved performance and reduced server load.<\/p>\n\n<h4>Why Use Swift Offload?<\/h4>\n\n<ul>\n<li><strong>Reduce Server Storage<\/strong> - Free up disk space by storing media in the cloud<\/li>\n<li><strong>Faster Page Loads<\/strong> - Serve media through CloudFront CDN<\/li>\n<li><strong>Scalable<\/strong> - Handle unlimited media without server constraints<\/li>\n<li><strong>Cost Effective<\/strong> - Use affordable storage providers like Wasabi<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Multiple Storage Providers<\/strong> - Amazon S3, Wasabi, DigitalOcean Spaces, MinIO<\/li>\n<li><strong>CloudFront CDN<\/strong> - Integrated CDN support with signed URLs for private content<\/li>\n<li><strong>Bulk Offload<\/strong> - Background processing to offload existing media<\/li>\n<li><strong>Auto Offload<\/strong> - Automatically offload new uploads<\/li>\n<li><strong>URL Rewriting<\/strong> - Seamlessly rewrite media URLs in your content<\/li>\n<li><strong>Image Optimization<\/strong> - WebP conversion and compression<\/li>\n<li><strong>Local File Removal<\/strong> - Option to delete local copies after offload<\/li>\n<li><strong>WP-CLI Support<\/strong> - Automate operations via command line<\/li>\n<li><strong>Modern Admin UI<\/strong> - Clean, intuitive React-based interface<\/li>\n<\/ul>\n\n<h4>Supported Storage Providers<\/h4>\n\n<ul>\n<li><strong>Amazon S3<\/strong> - The industry standard for cloud storage<\/li>\n<li><strong>Wasabi<\/strong> - S3-compatible with no egress fees<\/li>\n<li><strong>DigitalOcean Spaces<\/strong> - Simple, affordable object storage<\/li>\n<li><strong>MinIO<\/strong> - Self-hosted S3-compatible storage<\/li>\n<\/ul>\n\n<h4>Privacy &amp; Data<\/h4>\n\n<p>Swift Offload respects your privacy:<\/p>\n\n<ul>\n<li>Does NOT collect any user data without consent<\/li>\n<li>Does NOT send data to external servers (except your configured cloud storage)<\/li>\n<li>Does NOT track users or collect analytics<\/li>\n<li>Stores cloud storage credentials securely in your WordPress database<\/li>\n<li>All media operations happen on your server<\/li>\n<\/ul>\n\n<h4>Third-Party Libraries<\/h4>\n\n<p>This plugin uses the following open-source libraries:<\/p>\n\n<ul>\n<li>React \u2013 MIT License<\/li>\n<li>Tailwind CSS \u2013 MIT License<\/li>\n<li>Radix UI \u2013 MIT License<\/li>\n<li>TanStack Query \u2013 MIT License<\/li>\n<li>Lucide Icons \u2013 ISC License<\/li>\n<li>Shadcn\/ui \u2013 MIT License<\/li>\n<\/ul>\n\n<h4>Source Code<\/h4>\n\n<p>The original source code for all compiled assets is included in this plugin:<\/p>\n\n<ul>\n<li>React Admin App: <code>app\/src\/<\/code> directory<\/li>\n<li>SCSS Styles: <code>dev\/scss\/<\/code> directory<\/li>\n<li>JavaScript: <code>dev\/js\/<\/code> directory<\/li>\n<\/ul>\n\n<p>Build tools used: Vite, TypeScript, PostCSS, Sass<\/p>\n\n<p>To build from source:\n    cd app &amp;&amp; npm install &amp;&amp; npm run build<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external services only when explicitly configured by you:<\/p>\n\n<h4>Cloud Storage Providers (User Configured)<\/h4>\n\n<p>When you configure cloud storage, the plugin connects to your chosen provider to upload and manage media files.<\/p>\n\n<ul>\n<li><strong>Supported Providers:<\/strong> Amazon S3, Wasabi, DigitalOcean Spaces, MinIO, CloudFront<\/li>\n<li><strong>Data Sent:<\/strong> Your media files (only when you initiate offload operations)<\/li>\n<li><strong>When:<\/strong> Only when you configure storage and perform offload\/sync operations<\/li>\n<li><strong>Your Responsibility:<\/strong> You must review and agree to the terms of service of your chosen storage provider:\n\n<ul>\n<li>Amazon S3: <a href=\"https:\/\/aws.amazon.com\/service-terms\/\">AWS Terms<\/a><\/li>\n<li>Wasabi: <a href=\"https:\/\/wasabi.com\/legal\/\">Wasabi Terms<\/a><\/li>\n<li>DigitalOcean: <a href=\"https:\/\/www.digitalocean.com\/legal\/terms-of-service-agreement\">DO Terms<\/a><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>Deactivation Feedback (Optional)<\/h4>\n\n<p>When deactivating, you may optionally provide feedback to help us improve.<\/p>\n\n<ul>\n<li><strong>Service Provider:<\/strong> Swift Plugins<\/li>\n<li><strong>Data Sent:<\/strong> Feedback reason, comments (only if you choose to submit)<\/li>\n<li><strong>When:<\/strong> Only when you voluntarily submit the feedback form<\/li>\n<li><strong>Terms of Use:<\/strong> <a href=\"https:\/\/swiftplugins.pro\/terms-of-service\/\">Terms<\/a><\/li>\n<li><strong>Privacy Policy:<\/strong> <a href=\"https:\/\/swiftplugins.pro\/privacy-policy\/\">Privacy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/swift-offload<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Use the Settings -&gt; Swift Offload screen to configure the plugin.<\/li>\n<li>Enter your S3 credentials and bucket information.<\/li>\n<li>Test the connection and start offloading your media.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20storage%20providers%20are%20supported%3F\"><h3>What storage providers are supported?<\/h3><\/dt>\n<dd><p>Swift Offload supports Amazon S3 and S3-compatible storage providers including Wasabi, DigitalOcean Spaces, and MinIO (self-hosted).<\/p><\/dd>\n<dt id=\"will%20my%20existing%20media%20be%20offloaded%3F\"><h3>Will my existing media be offloaded?<\/h3><\/dt>\n<dd><p>Yes, you can bulk offload existing media files using the built-in tools or WP-CLI commands. The plugin includes a batch processing system that handles large media libraries efficiently.<\/p><\/dd>\n<dt id=\"can%20i%20remove%20local%20files%20after%20offloading%3F\"><h3>Can I remove local files after offloading?<\/h3><\/dt>\n<dd><p>Yes, Swift Offload includes an option to remove local files after they have been successfully offloaded to S3. This helps free up server disk space.<\/p><\/dd>\n<dt id=\"is%20my%20data%20secure%3F\"><h3>Is my data secure?<\/h3><\/dt>\n<dd><p>Yes. Your cloud storage credentials are stored securely in your WordPress database. All API calls to your storage provider use secure HTTPS connections.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20cloudfront%3F\"><h3>Does this work with CloudFront?<\/h3><\/dt>\n<dd><p>Yes, Swift Offload has built-in CloudFront CDN support with signed URL capabilities for private content delivery.<\/p><\/dd>\n<dt id=\"can%20i%20migrate%20from%20another%20s3%20plugin%3F\"><h3>Can I migrate from another S3 plugin?<\/h3><\/dt>\n<dd><p>Yes, Swift Offload includes a migration tool that can import settings and data from other popular S3 offload plugins.<\/p><\/dd>\n<dt id=\"is%20there%20wp-cli%20support%3F\"><h3>Is there WP-CLI support?<\/h3><\/dt>\n<dd><p>Yes, Swift Offload provides comprehensive WP-CLI commands for automation:<\/p>\n\n<ul>\n<li><code>wp swift-offload offload --all<\/code> - Offload all media<\/li>\n<li><code>wp swift-offload remove-local --all<\/code> - Remove local copies<\/li>\n<li><code>wp swift-offload rewrite-urls<\/code> - Rewrite URLs in content<\/li>\n<li><code>wp swift-offload diagnostics<\/code> - Run diagnostics<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: Remove programmatic plugin deactivation (deactivate_plugins) per WordPress guidelines<\/li>\n<li>Security: Use wpdb::prepare() for all SQL queries with dynamic IN clauses<\/li>\n<li>Fix: Reduce readme tags to 5 (WordPress.org limit)<\/li>\n<li>Fix: Match \"Requires at least\" version between readme.txt and plugin header<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Replace direct style\/script output with wp_enqueue_style\/script<\/li>\n<li>Fix: Restore source code for compiled assets (React, SCSS, JS)<\/li>\n<li>Fix: Use wp_safe_redirect instead of wp_redirect<\/li>\n<li>Fix: Remove bundled node_modules and source map files<\/li>\n<li>Security: Add proper escaping for SQL table names in uninstall<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Support for Amazon S3, Wasabi, DigitalOcean Spaces, MinIO<\/li>\n<li>CloudFront CDN integration with signed URLs<\/li>\n<li>Background job processing for bulk operations<\/li>\n<li>Image optimization with WebP conversion<\/li>\n<li>Modern React-based admin interface<\/li>\n<li>WP-CLI commands for automation<\/li>\n<li>Migration tool for other S3 plugins<\/li>\n<\/ul>","raw_excerpt":"Offload WordPress media to Amazon S3, Wasabi, DigitalOcean Spaces, or MinIO. Serve files via CloudFront CDN for faster delivery.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/280380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=280380"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/swiftplugins"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=280380"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=280380"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=280380"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=280380"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=280380"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=280380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}