{"id":292639,"date":"2026-04-10T17:37:01","date_gmt":"2026-04-10T17:37:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/offload-media-to-cloud\/"},"modified":"2026-04-10T17:43:04","modified_gmt":"2026-04-10T17:43:04","slug":"g33ki-cloud-storage-for-media-library","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/g33ki-cloud-storage-for-media-library\/","author":23298972,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.2","stable_tag":"1.2.2","tested":"6.9.4","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"G33ki Cloud Storage For Media Library","header_author":"Gunjan Jaswal","header_description":"Seamlessly offload your WordPress media library to Amazon S3, DigitalOcean Spaces, or Google Cloud Storage. Effortlessly move media to cloud for better performance and CDN delivery.","assets_banners_color":"a48580","last_updated":"2026-04-10 17:43:04","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/gunjanjaswal\/g33ki-cloud-storage-for-media-library","header_author_uri":"https:\/\/gunjanjaswal.me","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.2":{"tag":"1.2.2","author":"gunjanjaswal","date":"2026-04-10 17:43:04"}},"upgrade_notice":{"1.1.0":"<p>New repair tools: Fix Permissions, Fix Thumbnails, and Fix URLs. Auto-retry on connection drops. Recommended update for all users.<\/p>","1.0.0":"<p>Initial release. Install and activate \u2014 no additional setup required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3503512,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3503513,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500-es.png":{"filename":"banner-1544x500-es.png","revision":3503507,"resolution":"1544x500","location":"assets","locale":"es"},"banner-1544x500-es_ES.png":{"filename":"banner-1544x500-es_ES.png","revision":3503509,"resolution":"1544x500","location":"assets","locale":"es_ES"},"banner-1544x500-rtl.png":{"filename":"banner-1544x500-rtl.png","revision":3503510,"resolution":"1544x500","location":"assets","locale":""},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3503505,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250-es.png":{"filename":"banner-772x250-es.png","revision":3503502,"resolution":"772x250","location":"assets","locale":"es"},"banner-772x250-es_ES.png":{"filename":"banner-772x250-es_ES.png","revision":3503503,"resolution":"772x250","location":"assets","locale":"es_ES"},"banner-772x250-rtl.png":{"filename":"banner-772x250-rtl.png","revision":3503504,"resolution":"772x250","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3503501,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page \u2014 configure your cloud storage provider and credentials","2":"Bulk offload tool \u2014 migrate existing media with real-time progress tracking","3":"Restore local files \u2014 download cloud media back to server before deactivating","4":"Fix permissions \u2014 scan and repair 403 AccessDenied cloud files","5":"Fix thumbnails \u2014 find and upload missing thumbnail sizes","6":"Fix URLs \u2014 update stale URLs after config changes","7":"Connection test \u2014 verify your settings before going live","8":"Plugin action links \u2014 quick access to settings and support"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3863,10725,259921,259920,217],"plugin_category":[59],"plugin_contributors":[245263],"plugin_business_model":[],"class_list":["post-292639","plugin","type-plugin","status-publish","hentry","plugin_tags-cdn","plugin_tags-cloud-storage","plugin_tags-move-media-library-to-cloud","plugin_tags-offload-media-library","plugin_tags-s3","plugin_category-utilities-and-tools","plugin_contributors-gunjanjaswal","plugin_committers-gunjanjaswal"],"banners":{"banner":"https:\/\/ps.w.org\/g33ki-cloud-storage-for-media-library\/assets\/banner-772x250.png?rev=3503501","banner_2x":"https:\/\/ps.w.org\/g33ki-cloud-storage-for-media-library\/assets\/banner-1544x500.png?rev=3503505","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/g33ki-cloud-storage-for-media-library\/assets\/icon-128x128.png?rev=3503512","icon_2x":"https:\/\/ps.w.org\/g33ki-cloud-storage-for-media-library\/assets\/icon-256x256.png?rev=3503513","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>G33ki Cloud Storage For Media Library<\/strong> is the ultimate solution to <strong>offload media library<\/strong> assets, including images, videos, and documents, to leading cloud storage providers. By choosing to <strong>move media library to cloud<\/strong>, you significantly improve your website's performance, reduce server hosting costs, and leverage global CDN delivery \u2014 all with zero manual effort and no external dependencies.<\/p>\n\n<p>Whether you're looking to offload WordPress media to Amazon S3, or seeking a cost-effective way to store files on DigitalOcean Spaces, this plugin handles it all automatically.<\/p>\n\n<h4>Key Features<\/h4>\n\n<p><strong>Multi-Cloud Provider Support<\/strong><\/p>\n\n<ul>\n<li><strong>Amazon S3<\/strong> \u2014 Industry-leading object storage with global infrastructure<\/li>\n<li><strong>DigitalOcean Spaces<\/strong> \u2014 S3-compatible storage with predictable, affordable pricing<\/li>\n<li><strong>Google Cloud Storage<\/strong> \u2014 Enterprise-grade storage powered by Google's network (via HMAC keys)<\/li>\n<\/ul>\n\n<p><strong>Automatic Media Synchronization<\/strong><\/p>\n\n<ul>\n<li>New uploads automatically copied to cloud storage in real-time<\/li>\n<li>All image sizes and thumbnails synced automatically<\/li>\n<li>Videos, PDFs, documents \u2014 all file types supported<\/li>\n<li>Zero manual intervention required<\/li>\n<\/ul>\n\n<p><strong>Powerful Bulk Migration Tool<\/strong><\/p>\n\n<ul>\n<li>One-click migration for existing media libraries<\/li>\n<li>Real-time progress tracking with detailed statistics<\/li>\n<li>Batch processing for optimal performance<\/li>\n<li>Auto-retry on connection timeouts (handles Cloudflare 524 errors)<\/li>\n<li>Comprehensive error reporting<\/li>\n<\/ul>\n\n<p><strong>CDN &amp; Performance Optimization<\/strong><\/p>\n\n<ul>\n<li>Seamless CloudFront and custom CDN integration<\/li>\n<li>Full URL rewriting \u2014 post content, srcset, thumbnails, theme templates, headers, footers<\/li>\n<li>Output buffer rewrites all frontend HTML \u2014 catches even hardcoded theme URLs<\/li>\n<li>Smart re-link \u2014 detects files already in cloud, skips re-upload<\/li>\n<li>Global content delivery for faster load times<\/li>\n<li>Reduced server bandwidth and hosting costs<\/li>\n<\/ul>\n\n<p><strong>Built-in Repair &amp; Diagnostic Tools<\/strong><\/p>\n\n<ul>\n<li><strong>Fix Permissions<\/strong> \u2014 Scans all offloaded files and detects 403 AccessDenied errors. One-click fix sets public-read ACL or re-uploads with correct permissions. Essential after bulk operations or bucket policy changes.<\/li>\n<li><strong>Fix Thumbnails<\/strong> \u2014 Finds offloaded images where thumbnail sizes are missing from the cloud. Common after bulk offload interruptions or when WordPress generates new image sizes. Uploads missing thumbnails and stores their cloud URLs so all image sizes load correctly.<\/li>\n<li><strong>Fix URLs<\/strong> \u2014 Detects when your CDN URL, bucket, or region settings changed but stored media URLs still point to the old location. Bulk-updates all stored URLs to match current settings without re-uploading. Essential after migrating between providers or changing CDN configuration.<\/li>\n<\/ul>\n\n<p>Each repair tool follows a <strong>Scan &gt; Review &gt; Fix<\/strong> workflow with real-time progress tracking.<\/p>\n\n<p><strong>Safety &amp; Recovery<\/strong><\/p>\n\n<ul>\n<li>Restore local files \u2014 download cloud media back to server anytime<\/li>\n<li>Deactivation safety warning when local files are missing<\/li>\n<li>Secure credential storage<\/li>\n<li>Built-in connection testing before going live<\/li>\n<\/ul>\n\n<p><strong>Zero Dependencies<\/strong><\/p>\n\n<ul>\n<li>No Composer required<\/li>\n<li>No external SDKs or libraries needed<\/li>\n<li>Works out of the box on any WordPress host<\/li>\n<li>Uses WordPress built-in HTTP API with secure request signing<\/li>\n<\/ul>\n\n<h4>Admin Menu Pages<\/h4>\n\n<ul>\n<li><strong>Settings<\/strong> \u2014 Configure provider, credentials, CDN, path prefix, local file removal<\/li>\n<li><strong>Bulk Offload<\/strong> \u2014 Migrate entire media library to cloud with progress tracking and auto-retry<\/li>\n<li><strong>Restore Local<\/strong> \u2014 Download cloud files back to server before deactivating<\/li>\n<li><strong>Fix Permissions<\/strong> \u2014 Scan for 403\/404 errors and set public-read ACL<\/li>\n<li><strong>Fix Thumbnails<\/strong> \u2014 Find and upload missing thumbnail sizes to cloud<\/li>\n<li><strong>Fix URLs<\/strong> \u2014 Update stale URLs after CDN\/bucket\/region config changes<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li><strong>Configure Your Provider<\/strong> \u2014 Enter cloud storage credentials (access key, secret key, bucket, region)<\/li>\n<li><strong>Test Connection<\/strong> \u2014 Verify settings with built-in connection tester<\/li>\n<li><strong>Automatic Sync<\/strong> \u2014 All new uploads automatically copied to cloud storage<\/li>\n<li><strong>Bulk Offload<\/strong> \u2014 Migrate existing media files with one-click bulk tool<\/li>\n<li><strong>Serve from Cloud<\/strong> \u2014 Media URLs automatically rewritten to cloud\/CDN URLs<\/li>\n<li><strong>Diagnose &amp; Fix<\/strong> \u2014 Use repair tools if any issues arise<\/li>\n<\/ol>\n\n<h4>Supported Cloud Providers<\/h4>\n\n<p><strong>Amazon S3<\/strong>\nThe industry-standard object storage service with global reach, advanced features, and seamless CloudFront CDN integration.<\/p>\n\n<p><strong>DigitalOcean Spaces<\/strong>\nS3-compatible storage with simple, predictable pricing and built-in CDN. Perfect for developers and growing businesses.<\/p>\n\n<p><strong>Google Cloud Storage<\/strong>\nPowerful storage infrastructure from Google with multi-regional redundancy and edge caching capabilities. Uses HMAC keys for authentication.<\/p>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li><strong>High-Traffic Websites<\/strong> \u2014 Reduce server load and bandwidth costs<\/li>\n<li><strong>Photography &amp; Portfolio Sites<\/strong> \u2014 Store and deliver large image libraries efficiently<\/li>\n<li><strong>E-commerce Stores<\/strong> \u2014 Offload product images and improve checkout speed<\/li>\n<li><strong>News &amp; Magazine Sites<\/strong> \u2014 Handle extensive media archives with ease<\/li>\n<li><strong>Multi-Site Networks<\/strong> \u2014 Centralize media storage across multiple sites<\/li>\n<\/ul>\n\n<h4>SEO &amp; Performance Benefits<\/h4>\n\n<ul>\n<li><strong>Faster Page Load Times<\/strong> \u2014 Improve Core Web Vitals and SEO rankings<\/li>\n<li><strong>Global CDN Delivery<\/strong> \u2014 Serve content from locations closest to your visitors<\/li>\n<li><strong>Mobile Optimization<\/strong> \u2014 Faster image delivery for mobile users<\/li>\n<li><strong>Better Search Rankings<\/strong> \u2014 Google rewards faster websites<\/li>\n<li><strong>Reduced Bounce Rate<\/strong> \u2014 Keep visitors engaged with quick-loading pages<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to external cloud storage providers to automatically offload and serve your media files. Depending on your configuration, it relies on one of the following third-party services:<\/p>\n\n<p><strong>Amazon S3<\/strong>\nUsed to store and serve your media files globally.\n- <strong>Data sent:<\/strong> Your media files (images, videos, documents), filenames, and MIME types are sent securely to Amazon S3 whenever you upload a new file or use the bulk offload tool.\n- <strong>Terms of Use:<\/strong> <a href=\"https:\/\/aws.amazon.com\/service-terms\/\">AWS Service Terms<\/a>\n- <strong>Privacy Policy:<\/strong> <a href=\"https:\/\/aws.amazon.com\/privacy\/\">AWS Privacy Notice<\/a><\/p>\n\n<p><strong>DigitalOcean Spaces<\/strong>\nUsed to store and serve your media files globally.\n- <strong>Data sent:<\/strong> Your media files (images, videos, documents), filenames, and MIME types are sent securely to DigitalOcean whenever you upload a new file or use the bulk offload tool.\n- <strong>Terms of Use:<\/strong> <a href=\"https:\/\/www.digitalocean.com\/legal\/terms-of-service-agreement\">DigitalOcean Terms of Service<\/a>\n- <strong>Privacy Policy:<\/strong> <a href=\"https:\/\/www.digitalocean.com\/legal\/privacy-policy\">DigitalOcean Privacy Policy<\/a><\/p>\n\n<p><strong>Google Cloud Storage<\/strong>\nUsed to store and serve your media files globally.\n- <strong>Data sent:<\/strong> Your media files (images, videos, documents), filenames, and MIME types are sent securely to Google Cloud Storage whenever you upload a new file or use the bulk offload tool.\n- <strong>Terms of Use:<\/strong> <a href=\"https:\/\/cloud.google.com\/terms\">Google Cloud Terms<\/a>\n- <strong>Privacy Policy:<\/strong> <a href=\"https:\/\/cloud.google.com\/terms\/cloud-privacy-notice\">Google Cloud Privacy Notice<\/a><\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin does not collect or store any personal data. All cloud storage credentials are stored in your WordPress database and are only used to communicate with your chosen cloud storage provider. No data is sent to third parties except your selected cloud provider.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Developed by <a href=\"https:\/\/gunjanjaswal.me\">Gunjan Jaswal<\/a><\/p>\n\n<p>If you find this plugin helpful, please consider rating this plugin on WordPress.org or sharing with other WordPress users.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to Plugins &gt; Add New<\/li>\n<li>Search for \"G33ki Cloud Storage For Media Library\" or \"offload media library\"<\/li>\n<li>Click \"Install Now\" and then \"Activate\"<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to Plugins &gt; Add New &gt; Upload Plugin<\/li>\n<li>Choose the ZIP file and click \"Install Now\"<\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<p>No additional setup steps, libraries, or Composer required. The plugin works immediately after activation.<\/p>\n\n<h4>Configuration<\/h4>\n\n<ol>\n<li>Navigate to <strong>G33ki Cloud &gt; Settings<\/strong> in your WordPress admin<\/li>\n<li>Select your storage provider (Amazon S3, DigitalOcean Spaces, or Google Cloud Storage)<\/li>\n<li>Enter your credentials:\n\n<ul>\n<li>Access Key \/ Access Key ID<\/li>\n<li>Secret Key \/ Secret Access Key<\/li>\n<li>Bucket Name<\/li>\n<li>Region<\/li>\n<\/ul><\/li>\n<li>(Optional) Configure CDN URL and path prefix<\/li>\n<li>Click \"Test Connection\" to verify your settings<\/li>\n<li>Click \"Save Settings\"<\/li>\n<\/ol>\n\n<h4>Google Cloud Storage Setup<\/h4>\n\n<p>For GCS, you need HMAC keys instead of a service account JSON file:<\/p>\n\n<ol>\n<li>Go to Google Cloud Console &gt; Cloud Storage &gt; Settings<\/li>\n<li>Click the \"Interoperability\" tab<\/li>\n<li>Create an HMAC key for your service account<\/li>\n<li>Use the Access Key and Secret as your credentials in the plugin<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20composer%20or%20external%20libraries%3F\"><h3>Does this plugin require Composer or external libraries?<\/h3><\/dt>\n<dd><p>No! The plugin works completely standalone. It uses WordPress's built-in HTTP API with AWS Signature V4 request signing. Just install, activate, and configure.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20upload%20files%20directly%20to%20cloud%20storage%3F\"><h3>Does this plugin upload files directly to cloud storage?<\/h3><\/dt>\n<dd><p>Files are first uploaded to your WordPress server, then automatically copied to your cloud storage. The process is seamless and happens in the background.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20existing%20media%20files%3F\"><h3>What happens to my existing media files?<\/h3><\/dt>\n<dd><p>Existing media files are not automatically migrated. Use the <strong>Bulk Offload<\/strong> tool under G33ki Cloud &gt; Bulk Offload to migrate existing files with one click.<\/p><\/dd>\n<dt id=\"can%20i%20remove%20local%20files%20after%20uploading%20to%20cloud%20storage%3F\"><h3>Can I remove local files after uploading to cloud storage?<\/h3><\/dt>\n<dd><p>Yes! Enable the \"Remove Local Files\" option in settings. Files will be automatically deleted from your server after successful upload to cloud storage.<\/p><\/dd>\n<dt id=\"will%20this%20work%20with%20my%20cdn%20%28cloudfront%2C%20etc.%29%3F\"><h3>Will this work with my CDN (CloudFront, etc.)?<\/h3><\/dt>\n<dd><p>Absolutely! Enter your CDN URL (CloudFront, KeyCDN, BunnyCDN, etc.) in the \"CDN URL\" field, and all media will be served through your CDN.<\/p><\/dd>\n<dt id=\"what%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>Before deactivating, go to <strong>G33ki Cloud &gt; Restore Local<\/strong> to download all cloud-stored files back to your server. A warning notice on the Plugins page reminds you if local files are missing. After restoring, WordPress will serve media from your server as normal.<\/p><\/dd>\n<dt id=\"some%20images%20show%20403%20accessdenied%20errors%20after%20bulk%20offload.%20how%20do%20i%20fix%20this%3F\"><h3>Some images show 403 AccessDenied errors after bulk offload. How do I fix this?<\/h3><\/dt>\n<dd><p>Go to <strong>G33ki Cloud &gt; Fix Permissions<\/strong>. This tool scans all offloaded files and detects which ones are returning errors. Click \"Fix All Broken Files\" to set the correct public-read ACL on each file.<\/p><\/dd>\n<dt id=\"some%20image%20sizes%20%28thumbnails%29%20are%20not%20loading%20from%20the%20cloud.%20how%20do%20i%20fix%20this%3F\"><h3>Some image sizes (thumbnails) are not loading from the cloud. How do I fix this?<\/h3><\/dt>\n<dd><p>Go to <strong>G33ki Cloud &gt; Fix Thumbnails<\/strong>. This tool scans all offloaded attachments and finds which thumbnail sizes are missing from the cloud. Click \"Fix Missing Thumbnails\" to upload them.<\/p><\/dd>\n<dt id=\"i%20changed%20my%20cdn%20url%20%2F%20bucket%20%2F%20region%20and%20now%20images%20are%20broken.%20how%20do%20i%20fix%20this%3F\"><h3>I changed my CDN URL \/ bucket \/ region and now images are broken. How do I fix this?<\/h3><\/dt>\n<dd><p>Go to <strong>G33ki Cloud &gt; Fix URLs<\/strong>. This tool detects when stored URLs don't match your current settings. Click \"Fix All Mismatched URLs\" to update them \u2014 no re-uploading needed.<\/p><\/dd>\n<dt id=\"the%20bulk%20offload%20stops%20or%20times%20out%20midway.%20what%20do%20i%20do%3F\"><h3>The bulk offload stops or times out midway. What do I do?<\/h3><\/dt>\n<dd><p>The plugin has built-in auto-retry (up to 5 attempts per batch). If it still fails, just click \"Start Bulk Offload\" again \u2014 it picks up where it left off since already-offloaded files are automatically skipped.<\/p><\/dd>\n<dt id=\"does%20this%20support%20video%20and%20document%20files%3F\"><h3>Does this support video and document files?<\/h3><\/dt>\n<dd><p>Yes! The plugin supports all file types that WordPress allows in the media library, including images, videos, documents, audio files, and archives.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20page%20builders%3F\"><h3>Is this compatible with page builders?<\/h3><\/dt>\n<dd><p>Yes, the plugin works seamlessly with Elementor, Beaver Builder, Divi, WPBakery, Gutenberg, Oxygen, and more.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20woocommerce%3F\"><h3>Can I use this with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes! The plugin works perfectly with WooCommerce product images, galleries, and downloadable products.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20wordpress%20multisite%3F\"><h3>Does this work with WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes, the plugin is multisite compatible. You can configure different cloud storage settings for each site in your network.<\/p><\/dd>\n<dt id=\"how%20much%20does%20cloud%20storage%20cost%3F\"><h3>How much does cloud storage cost?<\/h3><\/dt>\n<dd><p>Cloud storage is very affordable:<\/p>\n\n<ul>\n<li><strong>Amazon S3<\/strong>: ~$0.023\/GB\/month + data transfer<\/li>\n<li><strong>DigitalOcean Spaces<\/strong>: $5\/month for 250GB + 1TB transfer<\/li>\n<li><strong>Google Cloud Storage<\/strong>: ~$0.020\/GB\/month + data transfer<\/li>\n<\/ul>\n\n<p>Most small to medium websites pay less than $5-10\/month.<\/p><\/dd>\n<dt id=\"can%20i%20migrate%20between%20cloud%20providers%3F\"><h3>Can I migrate between cloud providers?<\/h3><\/dt>\n<dd><p>Yes, you can change providers at any time. Update your settings, use <strong>Fix URLs<\/strong> to update stored URLs, and use the bulk offload tool to re-upload media to the new provider.<\/p><\/dd>\n<dt id=\"is%20my%20data%20secure%3F\"><h3>Is my data secure?<\/h3><\/dt>\n<dd><p>Yes! All credentials are stored securely in your WordPress database. Data is transmitted over HTTPS. AWS Signature V4 request signing ensures credentials are never sent in plain text. All admin actions require <code>manage_options<\/code> capability.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><ul>\n<li>Visit the WordPress.org support forum<\/li>\n<li>Contact the developer: hello@gunjanjaswal.me<\/li>\n<li>Report bugs on <a href=\"https:\/\/github.com\/gunjanjaswal\/g33ki-cloud-storage-for-media-library\">GitHub<\/a><\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Rebranding: Renamed to G33ki Cloud Storage For Media Library<\/li>\n<li>SEO: Improved description for better search visibility on \"offload media library\" and \"move media to cloud\" keywords<\/li>\n<li>Cleanup: Removed Buy Me a Coffee links<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fix: Removed inline script tag from fix-urls.php template to adhere to WP enqueuing guidelines<\/li>\n<li>Fix: Replaced ob_start() full-page buffering with wp_template_enhancement_output_buffer<\/li>\n<li>Docs: Added External Services declaration block to document S3\/DO\/GCS usage<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Full-page output buffer URL rewriting \u2014 catches theme-hardcoded image URLs in headers, footers, and templates<\/li>\n<li>New: Handles http\/https URL variations and relative \/wp-content\/uploads\/ paths<\/li>\n<li>New: Filters for post_thumbnail_html, widget_text, custom_logo, wp_get_attachment_image, header_image_tag<\/li>\n<li>Fix: Images in theme templates not rewriting for non-logged-in users<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Fix Permissions tool \u2014 scan and repair 403 AccessDenied cloud files<\/li>\n<li>New: Fix Thumbnails tool \u2014 find and upload missing thumbnail sizes to cloud<\/li>\n<li>New: Fix URLs tool \u2014 bulk-update stale URLs after CDN\/bucket\/region changes<\/li>\n<li>New: Auto-retry on connection timeouts (up to 5 retries per batch)<\/li>\n<li>New: Smart re-link \u2014 detects existing cloud files and skips re-upload<\/li>\n<li>New: Set public-read ACL when re-linking existing cloud files<\/li>\n<li>Fix: Bulk offload offset logic causing premature \"completed\" status<\/li>\n<li>Fix: Batch size reduced to avoid Cloudflare 524 timeout errors<\/li>\n<li>Fix: Success message no longer persists after page reload<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Support for Amazon S3, DigitalOcean Spaces, and Google Cloud Storage<\/li>\n<li>No external SDK dependencies \u2014 uses built-in HTTP API with request signing<\/li>\n<li>Automatic upload synchronization for new media<\/li>\n<li>Bulk offload tool for existing media with batch processing<\/li>\n<li>CDN integration support (CloudFront, custom domains)<\/li>\n<li>Built-in connection testing<\/li>\n<li>Optional local file removal after cloud upload<\/li>\n<li>Restore local files tool \u2014 download cloud media back to server<\/li>\n<li>Deactivation safety warning when local files are missing<\/li>\n<li>Custom path prefix support<\/li>\n<\/ul>","raw_excerpt":"Effortlessly offload media library assets to Amazon S3, DigitalOcean Spaces, or Google Cloud Storage. Seamlessly move media library to cloud.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/292639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=292639"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gunjanjaswal"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=292639"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=292639"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=292639"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=292639"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=292639"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=292639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}