{"id":386796,"date":"2026-10-14T12:12:52","date_gmt":"2026-10-14T12:12:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sidcraft-cloud-media-offload\/"},"modified":"2026-10-14T20:11:26","modified_gmt":"2026-10-14T20:11:26","slug":"sidcraft-cloud-media-offload","status":"publish","type":"plugin","link":"https:\/\/srd.wordpress.org\/plugins\/sidcraft-cloud-media-offload\/","author":17266986,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.3","stable_tag":"1.4.3","tested":"7.1.3","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Sidcraft Cloud Media Offload","header_author":"Suhaib Siddiqi","header_description":"Transparently moves Media Library uploads to Dropbox, OneDrive\/SharePoint, Google Drive, Box, iCloud, Amazon S3, DigitalOcean Spaces, Bunny.net or Cloudinary, and videos to Cloudflare Stream, Mux, Vimeo or YouTube. Adds cloud file browser, gallery, carousel, upload box, audio\/video players, download lists and document embeds.","assets_banners_color":"1362a1","last_updated":"2026-10-14 20:11:26","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/SSiddiqi275","header_plugin_uri":"","header_author_uri":"https:\/\/canvasly.pro\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.2":{"tag":"1.4.2","author":"ssiddiqi4","date":"2026-10-14 12:44:37","revision":3746369},"1.4.3":{"tag":"1.4.3","author":"ssiddiqi4","date":"2026-10-14 20:11:26","revision":3747080}},"upgrade_notice":{"1.4.3":"<p>Fixes files served through this server (Google Drive private mode) and makes image-heavy pages and proxied video much lighter on the server.<\/p>","1.4.2":"<p>WordPress.org review fixes.<\/p>","1.4.1":"<p>WordPress.org review fixes.<\/p>","1.4.0":"<p>Adds Amazon S3, DigitalOcean Spaces, Bunny.net, Cloudinary and the Cloudflare Stream, Mux, Vimeo and YouTube video platforms.<\/p>","1.3.0":"<p>Plugin Check compliance fixes.<\/p>","1.2.0":"<p>Adds the Cloud Media dashboard and Sidcraft Commerce digital downloads.<\/p>","1.1.0":"<p>Adds iCloud, existing-upload offloading, direct uploads, store and form integrations.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3746448,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3746429,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3746322,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"sidcm\/cloud-module":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"sidcm\/cloud-module","title":"Cloud Module","category":"media","icon":"cloud","description":"Show a file browser, gallery, carousel, download list, player, document embed or upload box from Dropbox, OneDrive, Google Drive or Box.","keywords":["dropbox","onedrive","google drive","box","gallery"],"textdomain":"sidcraft-cloud-media-offload","supports":{"html":false,"align":["wide","full"]},"attributes":{"module":{"type":"string","default":"browser"},"provider":{"type":"string","default":""},"folder":{"type":"string","default":""},"file":{"type":"string","default":""},"title":{"type":"string","default":""},"ext":{"type":"string","default":""},"columns":{"type":"string","default":"4"},"roles":{"type":"string","default":""},"upload":{"type":"boolean","default":false},"uploadRoles":{"type":"string","default":"logged_in"},"maxSize":{"type":"string","default":"100"},"password":{"type":"string","default":""},"notify":{"type":"boolean","default":false},"download":{"type":"boolean","default":true}},"editorScript":"sidcm-block","style":"sidcm-modules"}},"tagged_versions":["1.4.2","1.4.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3746320,"resolution":"1","location":"assets","locale":"","width":2736,"height":1739},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3746299,"resolution":"2","location":"assets","locale":"","width":2733,"height":1692},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3746299,"resolution":"3","location":"assets","locale":"","width":2747,"height":1534}},"screenshots":{"1":"Dshboard","2":"Offloading settings.","3":"Cloud Accounts."}},"plugin_section":[],"plugin_tags":[6918,3863,8193,233,46891],"plugin_category":[59],"plugin_contributors":[283684],"plugin_business_model":[],"class_list":["post-386796","plugin","type-plugin","status-publish","hentry","plugin_tags-amazon-s3","plugin_tags-cdn","plugin_tags-dropbox","plugin_tags-media-library","plugin_tags-offload","plugin_category-utilities-and-tools","plugin_contributors-ssiddiqi4","plugin_committers-ssiddiqi4"],"banners":{"banner":"https:\/\/ps.w.org\/sidcraft-cloud-media-offload\/assets\/banner-772x250.jpg?rev=3746322","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sidcraft-cloud-media-offload\/assets\/icon-128x128.png?rev=3746448","icon_2x":"https:\/\/ps.w.org\/sidcraft-cloud-media-offload\/assets\/icon-256x256.png?rev=3746429","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/sidcraft-cloud-media-offload\/assets\/screenshot-1.png?rev=3746320","caption":"Dshboard"},{"src":"https:\/\/ps.w.org\/sidcraft-cloud-media-offload\/assets\/screenshot-2.png?rev=3746299","caption":"Offloading settings."},{"src":"https:\/\/ps.w.org\/sidcraft-cloud-media-offload\/assets\/screenshot-3.png?rev=3746299","caption":"Cloud Accounts."}],"raw_content":"<!--section=description-->\n<p>Sidcraft Cloud Media Offload frees up your hosting space by moving every file you upload to the Media Library into your own cloud storage. It works in the background and is transparent: you upload media exactly as before, WordPress creates its image sizes, and the plugin moves the original and every generated size to the cloud, then serves them from there.<\/p>\n\n<h4>Offloading<\/h4>\n\n<ul>\n<li><strong>Cloud drives:<\/strong> Dropbox, OneDrive, OneDrive for Business \/ SharePoint document libraries, Google Drive, Box and iCloud (Apple CloudKit).<\/li>\n<li><strong>Object storage &amp; CDN:<\/strong> Amazon S3 (and S3-compatible services), DigitalOcean Spaces (optional Spaces CDN), Bunny.net Storage + CDN (with token authentication) and Cloudinary.<\/li>\n<li><strong>Video platforms:<\/strong> send video uploads to Cloudflare Stream, Mux, Vimeo or YouTube while all other files go to your main storage. Videos are shown with the platform's player in the video block and the [video] shortcode.<\/li>\n<li>Automatic: new uploads (originals, scaled images and every thumbnail size) move to the cloud right after upload.<\/li>\n<li>Large files are moved in the background with WP-Cron, using each provider's chunked\/resumable upload API.<\/li>\n<li>Optional: keep a local backup copy, or delete files from <code>wp-content\/uploads<\/code> to save space.<\/li>\n<li>Choose which file types to offload (all, images, media, or a custom extension list) and which to always keep local.<\/li>\n<li>Image editor and thumbnail regeneration keep working: edited files are pushed to the cloud automatically.<\/li>\n<li>Deleting a file from the Media Library also deletes (trashes) the cloud copy \u2013 optional.<\/li>\n<li>Media Library \"Storage\" column, row actions and bulk actions: move to cloud, move back, download local copy, remove local copy.<\/li>\n<li><strong>Existing uploads:<\/strong> offload your whole existing library (originals plus every thumbnail size) with one click and a progress bar \u2013 from the Cloud Media dashboard, the Offloading settings or the Tools screen \u2013 or let it run in the background with WP-Cron.<\/li>\n<li>Tools screen to create public links, download local copies or move everything back to the server.<\/li>\n<li>WP-CLI: <code>wp sidcm offload --all<\/code>, <code>wp sidcm restore --all<\/code>, <code>wp sidcm status<\/code>.<\/li>\n<\/ul>\n\n<h4>Delivery &amp; security<\/h4>\n\n<ul>\n<li>Offloaded files get stable URLs on your own domain (for example <code>https:\/\/example.com\/cloud-media\/2026\/10\/photo.jpg<\/code>) that mirror the uploads structure, so responsive images (<code>srcset<\/code>), the block editor and other plugins keep working.<\/li>\n<li><strong>Secure mode<\/strong> (default): every request is redirected to a short-lived, signed link created by the provider. Cloud files stay private.<\/li>\n<li><strong>Public mode<\/strong>: permanent \"anyone with the link\" shares for the fastest delivery (Dropbox, Google Drive, Box).<\/li>\n<li>Per-file access: restrict any attachment to logged-in users.<\/li>\n<li>Existing post content that still points to <code>wp-content\/uploads<\/code> is rewritten to the cloud URLs.<\/li>\n<li>OAuth tokens and client secrets are encrypted at rest. Each site uses its own cloud apps \u2013 files never pass through a third-party relay.<\/li>\n<\/ul>\n\n<h4>Cloud modules (shortcode &amp; block)<\/h4>\n\n<p>Show any folder of your cloud storage on a page with the <strong>Cloud Module<\/strong> block or the <code>[sidcm_cloud]<\/code> shortcode:<\/p>\n\n<ul>\n<li>File browser with breadcrumbs, search and sub-folder navigation (scope-locked to the configured folder)<\/li>\n<li>Image gallery with lightbox, and image carousel<\/li>\n<li>Download list and single download button<\/li>\n<li>Audio and video players with playlists, streamed from the cloud<\/li>\n<li>Document embed (Office and PDF previews where the provider supports it)<\/li>\n<li>Upload box with drag &amp; drop; files go <strong>directly from the visitor's browser to the cloud<\/strong> where the provider allows it (Dropbox up to 150 MB, OneDrive and Google Drive any size, Box up to 50 MB), otherwise in chunks through your server<\/li>\n<li><strong>Personal folders<\/strong>: <code>folder=\"Clients\/%user_login%\"<\/code> shows every logged-in user only their own folder \u2013 ideal for client portals<\/li>\n<li>Role-based access, password protection, e-mail notifications on uploads and downloads<\/li>\n<\/ul>\n\n<h4>Integrations<\/h4>\n\n<ul>\n<li><strong>WooCommerce<\/strong> downloadable products and <strong>Easy Digital Downloads<\/strong> files are delivered from the cloud: after the store verifies the purchase, the customer is redirected to a short-lived cloud link. Store files are never public. A cloud file picker creates \"store links\" for any file in your cloud storage.<\/li>\n<li><strong>Sidcraft Commerce:<\/strong> sell digital downloads from the cloud. Attach cloud files to products; when an order is paid, customers get secure links (with download limits and expiry) in their order e-mail and on a <code>[sidcm_my_downloads]<\/code> page. Links are revoked if the order is cancelled or refunded.<\/li>\n<li><strong>Sidcraft Page Builder:<\/strong> a native \"Cloud Module\" unit with every module type.<\/li>\n<li><strong>Contact Form 7, WPForms, Gravity Forms and Fluent Forms:<\/strong> files uploaded through forms are copied to the cloud automatically (with an optional e-mail containing the links).<\/li>\n<\/ul>\n\n<h4>Cloud Media dashboard<\/h4>\n\n<p>The plugin has its own dashboard (Cloud Media \u2192 Dashboard) with storage figures, one-click offloading of existing uploads, connected accounts, integrations, recent activity and quick links.<\/p>\n\n<h4>Activity log &amp; statistics<\/h4>\n\n<p>Track offloads, uploads, downloads and errors; see the most downloaded files over the last 30 days. Logged data is included in WordPress' personal data export and erase tools.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the cloud storage services that an administrator chooses to connect. Nothing is sent to any service until an administrator enters their own app credentials and clicks \"Connect\". No data is sent to the plugin author.<\/p>\n\n<p>What is sent and when:<\/p>\n\n<ul>\n<li><strong>When connecting an account (OAuth):<\/strong> the administrator's browser is sent to the provider's sign-in page; the site then exchanges the returned authorization code for access tokens.<\/li>\n<li><strong>When a file is uploaded to the Media Library (or moved with the Tools page \/ WP-CLI):<\/strong> the file and its generated image sizes, with their file names, are uploaded to the connected account.<\/li>\n<li><strong>When an offloaded file is viewed or downloaded:<\/strong> the site requests a temporary download link from the provider, and the visitor's browser downloads the file directly from the provider (which receives the visitor's IP address and browser information). In Google Drive private mode the file is downloaded by the site and streamed to the visitor.<\/li>\n<li><strong>When a Cloud Module is displayed or used:<\/strong> the site lists the configured folder; files are delivered as above; files uploaded by visitors through an upload box are sent to the configured folder.<\/li>\n<li><strong>When a Media Library file is deleted<\/strong> (if enabled): a delete\/trash request is sent for the cloud copy.<\/li>\n<\/ul>\n\n<p>Services:<\/p>\n\n<ul>\n<li><strong>Dropbox<\/strong> (Dropbox, Inc.) \u2013 API hosts api.dropboxapi.com, content.dropboxapi.com, www.dropbox.com. <a href=\"https:\/\/www.dropbox.com\/terms\">Terms of Service<\/a>, <a href=\"https:\/\/www.dropbox.com\/privacy\">Privacy Policy<\/a>.<\/li>\n<li><strong>Microsoft OneDrive \/ SharePoint via Microsoft Graph<\/strong> (Microsoft Corporation) \u2013 API hosts login.microsoftonline.com, graph.microsoft.com. <a href=\"https:\/\/www.microsoft.com\/servicesagreement\">Microsoft Services Agreement<\/a>, <a href=\"https:\/\/privacy.microsoft.com\/privacystatement\">Privacy Statement<\/a>.<\/li>\n<li><strong>Google Drive<\/strong> (Google LLC) \u2013 API hosts accounts.google.com, oauth2.googleapis.com, www.googleapis.com; files may be delivered from drive.usercontent.google.com. <a href=\"https:\/\/policies.google.com\/terms\">Google Terms of Service<\/a>, <a href=\"https:\/\/www.google.com\/drive\/terms-of-service\/\">Google Drive Terms<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a>.<\/li>\n<li><strong>Box<\/strong> (Box, Inc.) \u2013 API hosts account.box.com, api.box.com, upload.box.com; files are delivered from Box download hosts. For direct uploads the site requests a down-scoped, folder-limited upload token that is given to the visitor's browser. <a href=\"https:\/\/www.box.com\/legal\/termsofservice\">Terms of Service<\/a>, <a href=\"https:\/\/www.box.com\/legal\/privacypolicy\">Privacy Notice<\/a>.<\/li>\n<li><p><strong>iCloud via Apple CloudKit Web Services<\/strong> (Apple Inc.) \u2013 API host api.apple-cloudkit.com; files are uploaded to and delivered from Apple's CloudKit asset hosts. Requests are signed with the server-to-server key you provide. <a href=\"https:\/\/www.apple.com\/legal\/internet-services\/icloud\/\">iCloud Terms<\/a>, <a href=\"https:\/\/www.apple.com\/legal\/privacy\/\">Apple Privacy Policy<\/a>.<\/p><\/li>\n<li><p><strong>Amazon S3 \/ S3-compatible storage<\/strong> (Amazon Web Services, Inc., or the provider of the endpoint you enter) \u2013 the bucket's regional API host (s3.{region}.amazonaws.com) or your custom endpoint, and the CDN address you enter. Requests are signed with your access key. <a href=\"https:\/\/aws.amazon.com\/agreement\/\">AWS Customer Agreement<\/a>, <a href=\"https:\/\/aws.amazon.com\/privacy\/\">AWS Privacy Notice<\/a>.<\/p><\/li>\n<li><strong>DigitalOcean Spaces<\/strong> (DigitalOcean, LLC) \u2013 {region}.digitaloceanspaces.com and, with Spaces CDN on, {space}.{region}.cdn.digitaloceanspaces.com. <a href=\"https:\/\/www.digitalocean.com\/legal\/terms-of-service-agreement\">Terms of Service<\/a>, <a href=\"https:\/\/www.digitalocean.com\/legal\/privacy-policy\">Privacy Policy<\/a>.<\/li>\n<li><strong>Bunny.net<\/strong> (BunnyWay d.o.o.) \u2013 the storage API host of the selected region ({region}.storage.bunnycdn.com) and the Pull zone hostname you enter. <a href=\"https:\/\/bunny.net\/tos\/\">Terms of Service<\/a>, <a href=\"https:\/\/bunny.net\/privacy\/\">Privacy Policy<\/a>.<\/li>\n<li><strong>Cloudinary<\/strong> (Cloudinary Ltd.) \u2013 api.cloudinary.com for uploads and management; files are delivered from res.cloudinary.com. <a href=\"https:\/\/cloudinary.com\/tou\">Terms of Use<\/a>, <a href=\"https:\/\/cloudinary.com\/privacy\">Privacy Policy<\/a>.<\/li>\n<li><strong>Cloudflare Stream<\/strong> (Cloudflare, Inc.) \u2013 api.cloudflare.com for uploads and playback tokens; videos play from your Stream customer subdomain (customer-\u2026.cloudflarestream.com) or iframe.videodelivery.net. <a href=\"https:\/\/www.cloudflare.com\/terms\/\">Terms<\/a>, <a href=\"https:\/\/www.cloudflare.com\/privacypolicy\/\">Privacy Policy<\/a>.<\/li>\n<li><strong>Mux<\/strong> (Mux, Inc.) \u2013 api.mux.com for uploads; videos play from stream.mux.com and player.mux.com. <a href=\"https:\/\/www.mux.com\/terms\">Terms of Service<\/a>, <a href=\"https:\/\/www.mux.com\/privacy\">Privacy Policy<\/a>.<\/li>\n<li><strong>Vimeo<\/strong> (Vimeo.com, Inc.) \u2013 api.vimeo.com for uploads; videos play in player.vimeo.com. <a href=\"https:\/\/vimeo.com\/terms\">Terms of Service<\/a>, <a href=\"https:\/\/vimeo.com\/privacy\">Privacy Policy<\/a>.<\/li>\n<li><strong>YouTube<\/strong> (Google LLC) \u2013 accounts.google.com \/ oauth2.googleapis.com for sign-in and www.googleapis.com for uploads; videos play in the privacy-enhanced player at www.youtube-nocookie.com. <a href=\"https:\/\/www.youtube.com\/t\/terms\">YouTube Terms of Service<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a>.<\/li>\n<\/ul>\n\n<p>When a page shows a video stored on a video platform, the visitor's browser loads that platform's player, which receives the visitor's IP address and browser information.<\/p>\n\n<p><strong>Direct uploads:<\/strong> when a visitor uses an upload box and direct uploads are enabled, their browser sends the file straight to the provider listed above, using a short-lived upload session that this site creates for that single file.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it through <strong>Plugins \u2192 Add New<\/strong>, then activate it.<\/li>\n<li>Go to <strong>Cloud Media \u2192 Settings \u2192 Cloud accounts<\/strong>.<\/li>\n<li>Copy the <strong>Redirect URI<\/strong> shown at the top of the page.<\/li>\n<li>Register an app with the provider you want to use (a link to each developer console is shown on its card), add the Redirect URI, and paste the client ID and secret into the card. Save.<\/li>\n<li>Click <strong>Connect<\/strong> and approve access.<\/li>\n<li>On the <strong>Offloading<\/strong> tab choose the storage for new uploads. From now on, uploads move to the cloud automatically.<\/li>\n<li>Optional: use <strong>Cloud Media \u2192 Tools \u2192 Move existing media to the cloud<\/strong> for your existing library.<\/li>\n<\/ol>\n\n<p>Your site needs pretty permalinks for the <code>\/cloud-media\/<\/code> URLs; with plain permalinks a <code>?sidcm_file=<\/code> URL is used instead. Box, Microsoft and Google require HTTPS for the redirect URI on public sites.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20my%20visitors%20notice%20anything%3F\"><h3>Do my visitors notice anything?<\/h3><\/dt>\n<dd><p>No. Pages keep the same markup and URLs on your own domain; only the files are delivered from the cloud.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20or%20delete%20the%20plugin%3F\"><h3>What happens if I deactivate or delete the plugin?<\/h3><\/dt>\n<dd><p>Files that were removed from the server are only in the cloud, so they stop loading. Before deactivating permanently, run <strong>Tools \u2192 Move everything back to the server<\/strong>. Cloud files are never deleted when the plugin is deleted.<\/p><\/dd>\n<dt id=\"does%20icloud%20work%20with%20my%20personal%20icloud%20drive%3F\"><h3>Does iCloud work with my personal iCloud Drive?<\/h3><\/dt>\n<dd><p>No. Apple does not offer a public API for personal iCloud Drive. The plugin uses Apple's CloudKit Web Services: files are stored in a CloudKit container that belongs to your Apple Developer account (membership required). The settings card explains the one-time schema setup.<\/p><\/dd>\n<dt id=\"how%20do%20i%20sell%20cloud%20files%20with%20woocommerce%20or%20easy%20digital%20downloads%3F\"><h3>How do I sell cloud files with WooCommerce or Easy Digital Downloads?<\/h3><\/dt>\n<dd><p>Either choose a Media Library file as usual (it is offloaded and protected automatically), or open Cloud Media \u2192 Settings \u2192 Integrations, browse your storage with the cloud file picker and paste the store link into the product's file URL. Customers download through the store's normal, verified download links.<\/p><\/dd>\n<dt id=\"how%20do%20i%20sell%20cloud%20files%20with%20sidcraft%20commerce%3F\"><h3>How do I sell cloud files with Sidcraft Commerce?<\/h3><\/dt>\n<dd><p>Edit a product, open the \"Cloud downloads\" box and paste a store link (from Cloud Media \u2192 Settings \u2192 Integrations) or a Media Library file URL. Set a download limit and expiry. Customers receive the links when their order is paid; add the <code>[sidcm_my_downloads]<\/code> shortcode to an account page so they can find them later.<\/p><\/dd>\n<dt id=\"which%20storage%20should%20i%20pick%3F\"><h3>Which storage should I pick?<\/h3><\/dt>\n<dd><p>Cloud drives (Dropbox, OneDrive, Google Drive, Box, iCloud) suit sites that already keep files there. Object storage with a CDN (Amazon S3, DigitalOcean Spaces, Bunny.net, Cloudinary) is the fastest and cheapest for busy sites. Video platforms (Cloudflare Stream, Mux, Vimeo, YouTube) transcode videos and stream them adaptively; choose one under \"Video platform for videos\" and keep a regular storage for everything else.<\/p><\/dd>\n<dt id=\"can%20i%20use%20several%20clouds%20at%20once%3F\"><h3>Can I use several clouds at once?<\/h3><\/dt>\n<dd><p>New uploads go to one selected storage, but files already offloaded keep working from wherever they are, and every connected account can be used in Cloud Modules.<\/p><\/dd>\n<dt id=\"why%20do%20i%20need%20to%20create%20my%20own%20app%3F\"><h3>Why do I need to create my own app?<\/h3><\/dt>\n<dd><p>So that your files and tokens never pass through anyone else's servers, and so you control the permissions. The plugin requests the least access it needs (for Google Drive, only files created by the plugin unless you choose full access).<\/p><\/dd>\n<dt id=\"is%20onedrive%20%22public%20mode%22%20supported%3F\"><h3>Is OneDrive \"public mode\" supported?<\/h3><\/dt>\n<dd><p>OneDrive does not offer stable public file URLs suitable for embedding, so OneDrive always uses short-lived download links, which the plugin caches.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site has its own settings, accounts and tables.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Fixed: files served through this server (Google Drive with link sharing turned off) failed for visitors with a fatal error, because a WordPress admin function was not loaded on the front end. They now play and download.<\/li>\n<li>Performance: a file served through this server is downloaded from the cloud once and reused for an hour by all requests, instead of being downloaded in full again for every request. Audio and video players make many range requests while seeking, so a 500 MB video no longer means many 500 MB downloads. Parallel requests wait for the first download instead of starting their own. Change the lifetime with the <code>sidcm_proxy_cache_ttl<\/code> filter (0 restores one download per request).<\/li>\n<li>Performance: the cloud records of all images on a page are loaded together. Before, each image cost its own database query from the URL and srcset filters, and each post one more from content rewriting. Archives with 20 posts go from 159 to 47 queries, a 60-image gallery from 100 to 38, the RSS feed from 71 to 27; page output is unchanged.<\/li>\n<li>Performance: the database version and rewrite-flush flags are now autoloaded, saving two queries on every request.<\/li>\n<li>Performance: stored credentials and tokens are decrypted once per request instead of on every connection check.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Changed: large uploads are streamed through the WordPress HTTP API (http_api_curl hook) instead of direct cURL calls.<\/li>\n<li>Fixed: the file browser only opens subfolders that exist in the storage, so made-up folder paths in the URL no longer create cache entries or storage requests.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Changed: text domain matches the plugin slug (sidcraft-cloud-media-offload).<\/li>\n<li>Changed: admin notices appear only on the plugin's own screens.<\/li>\n<li>Fixed: nonce is verified before Media Library row actions read their parameters.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New: Amazon S3 (and S3-compatible), DigitalOcean Spaces, Bunny.net Storage + CDN and Cloudinary storage.<\/li>\n<li>New: video platforms \u2013 Cloudflare Stream, Mux, Vimeo and YouTube \u2013 for video uploads, with their players in posts.<\/li>\n<li>New: direct browser uploads to Amazon S3 with presigned links.<\/li>\n<li>Changed: Plugin URI.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Fixed: Plugin Check issues (translator comments and placeholder handling in folder help texts; Google Drive images are served from Drive's own download link).<\/li>\n<li>Changed: the Sidcraft cards are shown at the top of the Cloud Media dashboard.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Cloud Media dashboard page (replaces the WordPress Dashboard widget).<\/li>\n<li>New: Sidcraft Commerce digital downloads from cloud storage, with download limits, expiry, order e-mail links and a [sidcm_my_downloads] shortcode.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: iCloud storage through Apple CloudKit Web Services.<\/li>\n<li>New: offload existing uploads (originals + thumbnails) from the Offloading settings, the Dashboard widget or in the background.<\/li>\n<li>New: direct browser-to-cloud uploads for Dropbox, OneDrive, Google Drive and Box, with automatic fallback.<\/li>\n<li>New: WooCommerce and Easy Digital Downloads delivery from the cloud, with a cloud file picker for store links.<\/li>\n<li>New: Sidcraft Page Builder \"Cloud Module\" unit.<\/li>\n<li>New: Contact Form 7, WPForms, Gravity Forms and Fluent Forms uploads saved to the cloud.<\/li>\n<li>Improved: Google Drive files shown in modules are shared automatically when link sharing is on.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Move Media Library uploads to cloud drives, Amazon S3, Spaces, Bunny.net or Cloudinary, and videos to Stream, Mux, Vimeo or YouTube.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/386796","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=386796"}],"author":[{"embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ssiddiqi4"}],"wp:attachment":[{"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=386796"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=386796"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=386796"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=386796"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=386796"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=386796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}