{"id":273559,"date":"2026-03-04T18:11:19","date_gmt":"2026-03-04T18:11:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cloud-auto-importer\/"},"modified":"2026-05-12T15:56:19","modified_gmt":"2026-05-12T15:56:19","slug":"michael-cloud-image-auto-importer","status":"publish","type":"plugin","link":"https:\/\/en-nz.wordpress.org\/plugins\/michael-cloud-image-auto-importer\/","author":23434036,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.2","stable_tag":"trunk","tested":"6.9.4","requires":"5.6","requires_php":"7.2","requires_plugins":null,"header_name":"Michael Cloud Image Auto Importer","header_author":"Michael Otieno","header_description":"Import images from Google Drive to WordPress Media Library. Connect your Google Drive, select a folder, and import images with alt text generation.","assets_banners_color":"386292","last_updated":"2026-05-12 15:56:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":384,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.6":{"tag":"1.0.6","author":"mike17894","date":"2026-03-04 18:37:10"},"1.0.7":{"tag":"1.0.7","author":"mike17894","date":"2026-03-06 16:24:34"},"2.0.0":{"tag":"2.0.0","author":"mike17894","date":"2026-04-09 18:15:41"},"2.0.1":{"tag":"2.0.1","author":"mike17894","date":"2026-05-12 15:48:41"}},"upgrade_notice":{"2.0.2":"<ul>\n<li>Added EWWW Image Optimizer compatibility information and improved plugin documentation.<\/li>\n<\/ul>","2.0.0":"<ul>\n<li><strong>New feature!<\/strong> Cloudflare Worker integration added. Now you can connect without API credentials! Traditional method still works. Recommended update for all users.<\/li>\n<\/ul>","1.0.7":"<ul>\n<li>Reliability improvements. Recommended update.<\/li>\n<\/ul>","1.0.6":"<ul>\n<li>Fixed all domain issues. Recommended update.<\/li>\n<\/ul>","1.0.5":"<ul>\n<li>Added external services documentation. Recommended update.<\/li>\n<\/ul>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3502744,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3502744,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.6","1.0.7","2.0.0","2.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.PNG":{"filename":"screenshot-1.PNG","revision":3502744,"resolution":"1","location":"assets","locale":"","width":1200,"height":559},"screenshot-2.PNG":{"filename":"screenshot-2.PNG","revision":3502744,"resolution":"2","location":"assets","locale":"","width":1200,"height":577},"screenshot-3.PNG":{"filename":"screenshot-3.PNG","revision":3502744,"resolution":"3","location":"assets","locale":"","width":1200,"height":544}},"screenshots":{"1":"<strong>Main Interface<\/strong> \u2013 Connect Google Drive and start imports","2":"<strong>Import Progress<\/strong> \u2013 Real-time progress bar with live statistics","3":"<strong>Settings Page<\/strong> \u2013 Simple data management options","4":"<strong>Import Logs<\/strong> \u2013 Detailed history with success rates","5":"<strong>Setup Guide<\/strong> \u2013 Quick start instructions"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[125072,259852,17785,29161,233],"plugin_category":[50],"plugin_contributors":[257117],"plugin_business_model":[],"class_list":["post-273559","plugin","type-plugin","status-publish","hentry","plugin_tags-bulk-import","plugin_tags-duplicate-detection","plugin_tags-google-drive","plugin_tags-image-optimization","plugin_tags-media-library","plugin_category-media","plugin_contributors-mike17894","plugin_committers-mike17894"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/michael-cloud-image-auto-importer\/assets\/icon-128x128.png?rev=3502744","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/michael-cloud-image-auto-importer\/assets\/screenshot-1.PNG?rev=3502744","caption":"<strong>Main Interface<\/strong> \u2013 Connect Google Drive and start imports"},{"src":"https:\/\/ps.w.org\/michael-cloud-image-auto-importer\/assets\/screenshot-2.PNG?rev=3502744","caption":"<strong>Import Progress<\/strong> \u2013 Real-time progress bar with live statistics"},{"src":"https:\/\/ps.w.org\/michael-cloud-image-auto-importer\/assets\/screenshot-3.PNG?rev=3502744","caption":"<strong>Settings Page<\/strong> \u2013 Simple data management options"}],"raw_content":"<!--section=description-->\n<p>Michael Cloud Image Auto Importer lets you import images from Google Drive straight into your WordPress Media Library.<br \/>\nIt is ideal for bloggers, photographers, and content creators who store their media in Google Drive.<\/p>\n\n<p>The plugin connects securely to your Google Drive account - now with TWO authentication options:\n1. <strong>New:<\/strong> One-click Cloudflare Worker connection (no API credentials needed!)\n2. <strong>Traditional:<\/strong> Google API credentials (for advanced users)<\/p>\n\n<p><strong>Key Features:<\/strong>\n* \ud83d\udd10 <strong>Optional Zero Configuration<\/strong> \u2013 New Cloudflare Worker option - just click \"Connect\"!\n* \u2601\ufe0f <strong>Cloudflare Worker Integration<\/strong> \u2013 Secure OAuth without exposing credentials\n* \ud83d\udd11 <strong>Traditional OAuth Support<\/strong> \u2013 Use your own Google API credentials if preferred\n* \ud83d\udcc1 <strong>Bulk Image Import<\/strong> \u2013 Import entire Drive folders at once\n* \ud83d\udd0d <strong>Smart Duplicate Detection<\/strong> \u2013 MD5 file hashing to skip existing images\n* \ud83d\udcdd <strong>SEO-Friendly Alt Text<\/strong> \u2013 Auto-generates from filenames (cat.jpg \u2192 \"Cat\")\n* \ud83d\udddc\ufe0f <strong>Optional Compression<\/strong> \u2013 JPEG\/PNG\/WebP compression with quality control\n* \ud83d\udcca <strong>Real-Time Progress<\/strong> \u2013 Live progress bar and statistics\n* \ud83d\udccb <strong>Detailed Import Logs<\/strong> \u2013 Success\/failure rates for every import\n* \ud83d\ude80 <strong>No Limits<\/strong> \u2013 Import as many images as you need\n* \ud83c\udfa8 <strong>Clean Interface<\/strong> \u2013 Intuitive WordPress admin design\n* \ud83c\udf0d <strong>Multisite Compatible<\/strong> \u2013 Works on WordPress Multisite networks<\/p>\n\n<h3>External Services<\/h3>\n\n<p><strong>Option 1: Cloudflare Worker (New in 2.0.0)<\/strong>\n<strong>Service:<\/strong> Cloudflare Worker (Google OAuth Proxy)\n<strong>Purpose:<\/strong> Securely handle Google OAuth authentication without storing credentials in WordPress\n<strong>Data Transmitted:<\/strong>\n- OAuth authorization codes\n- Session tokens (temporary, stored in Cloudflare KV)\n<strong>Service Provider:<\/strong> Cloudflare, Inc.\n<strong>Privacy Policy:<\/strong> https:\/\/www.cloudflare.com\/privacypolicy\/<\/p>\n\n<p><strong>Option 2: Direct Google API<\/strong>\n<strong>Service:<\/strong> Google Drive API\n<strong>Purpose:<\/strong> Browse, list, and download images from your Google Drive\n<strong>Data Transmitted:<\/strong>\n- OAuth 2.0 authentication tokens\n- File metadata (names, IDs, sizes, MIME types)\n- MD5 hashes of files (for duplicate detection)\n- File content when downloading images\n<strong>Service Provider:<\/strong> Google LLC\n<strong>Terms:<\/strong> https:\/\/developers.google.com\/drive\/terms\n<strong>Privacy:<\/strong> https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>User Consent:<\/strong> By clicking \"Connect Google Drive\", you consent to connecting to these services.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Two Authentication Methods<\/strong> \u2013 Choose Cloudflare Worker (zero-config) or traditional API credentials<\/li>\n<li><strong>Zero Configuration Option<\/strong> \u2013 New Cloudflare Worker integration - no API credentials needed!<\/li>\n<li><strong>Traditional OAuth Support<\/strong> \u2013 Use your own Google API credentials for full control<\/li>\n<li><strong>Bulk Image Import<\/strong> \u2013 Import entire folders at once<\/li>\n<li><strong>Smart Duplicate Detection<\/strong> \u2013 MD5 file hashing prevents duplicates<\/li>\n<li><strong>SEO Optimization<\/strong> \u2013 Auto-generates alt text from filenames<\/li>\n<li><strong>Image Compression<\/strong> \u2013 Optional compression with adjustable quality (50-95%)<\/li>\n<li><strong>Real-Time Progress Tracking<\/strong> \u2013 Live progress bar and statistics<\/li>\n<li><strong>Detailed Import Logs<\/strong> \u2013 Complete history of all imports<\/li>\n<li><strong>One-Click Disconnect<\/strong> \u2013 Easily revoke access anytime<\/li>\n<li><strong>No Usage Limits<\/strong> \u2013 Import unlimited images<\/li>\n<li><strong>Privacy First<\/strong> \u2013 No tracking, no analytics<\/li>\n<\/ul>\n\n<h3>Compatibility<\/h3>\n\n<ul>\n<li>Fully compatible with EWWW Image Optimizer<\/li>\n<li>Imported images use standard WordPress attachment handling and upload mechanisms<\/li>\n<li>Automatically supports image optimization workflows after import<\/li>\n<li>Works seamlessly with automatic compression and WebP generation setups<\/li>\n<\/ul>\n\n<p>Recommended Plugin:\nEWWW Image Optimizer \u2013 Automatically optimize imported images for better performance and reduced file sizes.<\/p>\n\n<h3>How It Works<\/h3>\n\n<p><strong>Option A: Cloudflare Worker (Recommended - New!)<\/strong>\n1. Click \"Connect Google Drive\"\n2. Authorize your Google account\n3. Paste Drive folder URL and start import\n4. Done! No API credentials needed!<\/p>\n\n<p><strong>Option B: Traditional Google API<\/strong>\n1. Create Google Cloud Project\n2. Enable Drive API and create OAuth credentials\n3. Enter credentials in plugin settings\n4. Connect and start importing<\/p>\n\n<h3>Google API Setup (Traditional Method)<\/h3>\n\n<ol>\n<li><p><strong>Create Google Cloud Project<\/strong><\/p>\n\n<ul>\n<li>Visit https:\/\/console.cloud.google.com\/<\/li>\n<li>Create new project or select existing<\/li>\n<\/ul><\/li>\n<li><p><strong>Enable Google Drive API<\/strong><\/p>\n\n<ul>\n<li>Go to \"APIs &amp; Services\" \u2192 \"Library\"<\/li>\n<li>Search for \"Google Drive API\"<\/li>\n<li>Click \"Enable\"<\/li>\n<\/ul><\/li>\n<li><p><strong>Create OAuth 2.0 Credentials<\/strong><\/p>\n\n<ul>\n<li>Go to \"APIs &amp; Services\" \u2192 \"Credentials\"<\/li>\n<li>Click \"Create Credentials\" \u2192 \"OAuth client ID\"<\/li>\n<li>Application type: \"Web application\"<\/li>\n<li>Name: \"Cloud Auto Importer\"<\/li>\n<li>Authorized redirect URI: <code>[your-site]\/wp-admin\/admin.php?page=cloud-auto-importer<\/code><\/li>\n<\/ul><\/li>\n<li><p><strong>Configure Plugin<\/strong><\/p>\n\n<ul>\n<li>Copy \"Client ID\" and \"Client Secret\"<\/li>\n<li>Paste into plugin Settings page<\/li>\n<li>Save settings<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h3>Languages<\/h3>\n\n<ul>\n<li>English (default)<\/li>\n<li>Translations welcome via WordPress.org<\/li>\n<li>Text Domain: michael-cloud-image-auto-importer<\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<p><strong>Developed by:<\/strong> Michael Otieno (WordPress.org: mike17894)<br \/>\n<strong>Cloudflare Integration:<\/strong> Cloudflare Workers for secure OAuth<br \/>\n<strong>Google API:<\/strong> Official Google Drive API<br \/>\n<strong>Coding Standards:<\/strong> WordPress PHP, JS, CSS standards<br \/>\n<strong>License:<\/strong> 100% GPLv2+<\/p>\n\n<h3>Support<\/h3>\n\n<p>WordPress.org support forum:<br \/>\nhttps:\/\/wordpress.org\/support\/plugin\/michael-cloud-image-auto-importer\/<\/p>\n\n<!--section=installation-->\n<p><strong>Quick Setup (Cloudflare Worker - New!):<\/strong>\n1. Upload plugin folder to <code>\/wp-content\/plugins\/<\/code>\n2. Activate through Plugins menu\n3. Go to <strong>Cloud Importer<\/strong> page\n4. Click <strong>Connect Google Drive<\/strong>\n5. Authorize your Google account\n6. Start importing images!<\/p>\n\n<p><strong>Traditional Setup (Google API Credentials):<\/strong>\n1. Follow Google API Setup instructions below\n2. Enter credentials in Settings page\n3. Connect and import<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%27s%20new%20in%20version%201.1.0%3F\"><h3>What's new in version 1.1.0?<\/h3><\/dt>\n<dd><p>Cloudflare Worker integration! Now you can connect to Google Drive without entering any API credentials. Just click \"Connect\" and authorize!<\/p><\/dd>\n<dt id=\"do%20i%20need%20google%20api%20credentials%3F\"><h3>Do I need Google API credentials?<\/h3><\/dt>\n<dd><p>No! With the new Cloudflare Worker option, you don't need any credentials. Just click \"Connect Google Drive\"!<\/p><\/dd>\n<dt id=\"can%20i%20still%20use%20my%20own%20google%20api%20credentials%3F\"><h3>Can I still use my own Google API credentials?<\/h3><\/dt>\n<dd><p>Yes. The traditional authentication method still works for advanced users who want full control.<\/p><\/dd>\n<dt id=\"how%20does%20the%20cloudflare%20worker%20work%3F\"><h3>How does the Cloudflare Worker work?<\/h3><\/dt>\n<dd><p>The worker acts as a secure proxy between WordPress and Google. It stores OAuth secrets in Cloudflare's secure environment, not in your WordPress database.<\/p><\/dd>\n<dt id=\"is%20my%20data%20secure%20with%20the%20worker%3F\"><h3>Is my data secure with the worker?<\/h3><\/dt>\n<dd><p>Yes. The worker uses Cloudflare's secure infrastructure. Images download directly to your server. No data passes through third parties except the required Google API connections.<\/p><\/dd>\n<dt id=\"is%20there%20a%20limit%20to%20how%20many%20images%20i%20can%20import%3F\"><h3>Is there a limit to how many images I can import?<\/h3><\/dt>\n<dd><p>No. There are no usage or import limits.<\/p><\/dd>\n<dt id=\"can%20i%20import%20images%20from%20shared%20folders%3F\"><h3>Can I import images from shared folders?<\/h3><\/dt>\n<dd><p>Yes. Any Google Drive folder you have access to works.<\/p><\/dd>\n<dt id=\"what%20image%20formats%20are%20supported%3F\"><h3>What image formats are supported?<\/h3><\/dt>\n<dd><p>JPG, JPEG, PNG, GIF, WebP, BMP, TIFF, TIF, SVG, ICO.<\/p><\/dd>\n<dt id=\"are%20images%20compressed%20during%20import%3F\"><h3>Are images compressed during import?<\/h3><\/dt>\n<dd><p>Optional compression is available for JPG, PNG, and WebP images. Quality adjustable from 50-95%.<\/p><\/dd>\n<dt id=\"how%20are%20duplicates%20detected%3F\"><h3>How are duplicates detected?<\/h3><\/dt>\n<dd><p>MD5 file hashing. Same hash = duplicate file = skipped.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%3F\"><h3>What happens when I uninstall?<\/h3><\/dt>\n<dd><p>You can choose to keep or delete all plugin data (settings, logs, import metadata).<\/p><\/dd>\n<dt id=\"does%20this%20work%20on%20multisite%3F\"><h3>Does this work on multisite?<\/h3><\/dt>\n<dd><p>Yes. Fully multisite compatible.<\/p><\/dd>\n<dt id=\"what%20if%20i%20want%20to%20use%20my%20own%20cloudflare%20worker%3F\"><h3>What if I want to use my own Cloudflare Worker?<\/h3><\/dt>\n<dd><p>You can deploy your own worker and configure the plugin to use it. Contact support for details.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Added EWWW Image Optimizer compatibility section<\/li>\n<li>Improved plugin discoverability tags<\/li>\n<li>Updated plugin documentation and readme structure<\/li>\n<li>Minor documentation and compatibility improvements<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li><strong>NEW:<\/strong> Cloudflare Worker integration for optional zero-config authentication<\/li>\n<li><strong>NEW:<\/strong> One-click Google Drive connection (no API credentials needed!)<\/li>\n<li><strong>NEW:<\/strong> Added 15+ additional plugin tags for better discoverability<\/li>\n<li><strong>IMPROVED:<\/strong> Existing credential-based authentication still fully supported<\/li>\n<li><strong>IMPROVED:<\/strong> Better error messages for connection issues<\/li>\n<li><strong>IMPROVED:<\/strong> Updated documentation for new workflow<\/li>\n<li><strong>SECURITY:<\/strong> Optional external credential storage via Cloudflare<\/li>\n<li><strong>UX:<\/strong> Simplified setup process for new users<\/li>\n<li><strong>COMPATIBILITY:<\/strong> Fully backward compatible with version 1.0.x<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Increased reliability and efficiency<\/li>\n<li>Maintained WordPress.org compliance<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fixed text domain to match plugin slug<\/li>\n<li>Updated all translation strings<\/li>\n<li>Improved WordPress.org compliance<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added comprehensive external services documentation<\/li>\n<li>Fixed variable prefix consistency<\/li>\n<li>Improved WordPress.org compliance<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added external services documentation<\/li>\n<li>Fixed prefix compliance: 'cai_' to 'mcai_'<\/li>\n<li>Fixed sanitization: wp_validate_boolean()<\/li>\n<li>Removed direct file inclusion<\/li>\n<li>Added WordPress.org username to Contributors<\/li>\n<li>Updated all AJAX actions to use mcai_ prefix<\/li>\n<li>Updated CSS\/JS class names<\/li>\n<li>Fixed database table name prefix<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Renamed plugin to Michael Cloud Image Auto Importer<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed PHPCS warnings and coding standards<\/li>\n<li>Added proper escaping for all output<\/li>\n<li>Improved nonce verification<\/li>\n<li>Enhanced error handling<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed translation compatibility<\/li>\n<li>Improved alt text generation<\/li>\n<li>Enhanced compression controls<\/li>\n<li>Fixed duplicate detection<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Import images from Google Drive into the WordPress Media Library with optional Cloudflare Worker or Google API authentication.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/273559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=273559"}],"author":[{"embeddable":true,"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mike17894"}],"wp:attachment":[{"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=273559"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=273559"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=273559"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=273559"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=273559"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/en-nz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=273559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}