{"id":250189,"date":"2025-09-19T19:58:09","date_gmt":"2025-09-19T19:58:09","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/oci-media-offload-lite\/"},"modified":"2025-09-19T20:05:33","modified_gmt":"2025-09-19T20:05:33","slug":"articla-media-offload-lite-for-oracle-cloud-infrastructure","status":"publish","type":"plugin","link":"https:\/\/vi.wordpress.org\/plugins\/articla-media-offload-lite-for-oracle-cloud-infrastructure\/","author":23352236,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.3","stable_tag":"trunk","tested":"6.8.5","requires":"6.0","requires_php":"7.0","requires_plugins":null,"header_name":"Articla media offload lite for oracle cloud infrastructure","header_author":"Articla79","header_description":"Offload WordPress media to Oracle Cloud (OCI) Object Storage via the S3-compatible path-style endpoint. One-page setup. (CDN\/PAR & Backfill available in PRO)","assets_banners_color":"","last_updated":"2025-09-19 20:05:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":515,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3364739,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3364739,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3364739,"resolution":"1","location":"assets","locale":"","width":1666,"height":1526}},"screenshots":{"1":"Explainer: how media offloading works with OCI Object Storage.","2":"Settings screen: region, namespace, keys, bucket, and offload options."}},"plugin_section":[],"plugin_tags":[248103,19386,190597,248102,217],"plugin_category":[59],"plugin_contributors":[246954],"plugin_business_model":[],"class_list":["post-250189","plugin","type-plugin","status-publish","hentry","plugin_tags-cdn-media","plugin_tags-object-storage","plugin_tags-oci","plugin_tags-oracle-cloud","plugin_tags-s3","plugin_category-utilities-and-tools","plugin_contributors-articla79","plugin_committers-articla79"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/articla-media-offload-lite-for-oracle-cloud-infrastructure\/assets\/icon-128x128.png?rev=3364739","icon_2x":"https:\/\/ps.w.org\/articla-media-offload-lite-for-oracle-cloud-infrastructure\/assets\/icon-256x256.png?rev=3364739","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/articla-media-offload-lite-for-oracle-cloud-infrastructure\/assets\/screenshot-1.png?rev=3364739","caption":"Explainer: how media offloading works with OCI Object Storage."}],"raw_content":"<!--section=description-->\n<p>Move your WordPress media to Oracle Cloud Infrastructure (OCI) Object Storage and serve it directly from there\u2014reducing disk usage, speeding up delivery, and keeping your uploads organized.<\/p>\n\n<p><strong>Key features<\/strong>\n- \u2705 Offload new uploads to OCI Object Storage (S3-compatible, path-style).\n- \ud83d\udd01 Backfill existing media in batches, with progress notice and stop button.\n- \ud83d\udd10 Supports private and public buckets.\n- \ud83d\udd17 Rewrites media URLs to load from your bucket (or your CDN in front of it).\n- \ud83e\ude7a One-click Health Check to validate credentials, bucket, and endpoint.\n- \u2699\ufe0f Non-destructive option to keep a local copy of files.\n- \ud83e\udde9 Works with common media workflows and doesn\u2019t lock you in.<\/p>\n\n<p><strong>How it works (quick start)<\/strong>\n1) Go to <strong>Media \u2192 OCI Offload<\/strong> and enter your <strong>Region, Namespace, Access Key, Secret Key, and Bucket<\/strong>.\n2) Click <strong>Save<\/strong>, then enable <strong>Offload new uploads<\/strong> (and optionally <strong>Keep local copy<\/strong>).\n3) Use <strong>Backfill<\/strong> to move existing media (optional).\n4) Optionally put a CDN in front of your bucket for global performance.<\/p>\n\n<p><strong>Who is it for?<\/strong>\n- Sites that want to save disk space on the web server.\n- Publishers that prefer serving media from OCI directly or behind a CDN.\n- Teams needing simple, reliable S3-compatible offloading with minimal setup.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>No telemetry. Only your configured requests to OCI are made.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to <strong>Oracle Cloud Infrastructure (OCI) Object Storage<\/strong> in order to upload and read media files.<\/p>\n\n<ul>\n<li><strong>What service is used and why<\/strong>: Oracle Cloud Object Storage (domains under <code>*.oraclecloud.com<\/code>, for example <code>{namespace}.compat.objectstorage.{region}.oraclecloud.com<\/code>) is used to store (PUT) and retrieve (GET) your media files and to run an optional health check.<\/li>\n<li><strong>What data is sent and when<\/strong>:\n\n<ul>\n<li>When you enable \"Offload new uploads\", each uploaded attachment (file contents, filename\/path) is sent via HTTPS <code>PUT<\/code> to your configured bucket and namespace.<\/li>\n<li>The admin <strong>Health Check<\/strong> uploads a small text file and immediately reads it back to verify connectivity.<\/li>\n<li>Standard request metadata such as your server's IP and user agent are visible to Oracle as with any HTTPS request.<\/li>\n<\/ul><\/li>\n<li><strong>Authentication<\/strong>: All requests are signed client-side with AWS Signature V4 using the Access Key ID and Secret Key you provide in the plugin settings. Keys are stored in your WordPress database (options) and are never sent anywhere except as part of the standard signature headers to OCI.<\/li>\n<li><strong>Privacy and terms<\/strong>: See Oracle's <a href=\"https:\/\/www.oracle.com\/legal\/terms.html\">Terms of Use<\/a> and <a href=\"https:\/\/www.oracle.com\/legal\/privacy\/\">Privacy Policy<\/a>.<\/li>\n<li><strong>Opt-out<\/strong>: Disable \"Offload new uploads\" or deactivate the plugin. The plugin does not contact any external service when offloading is disabled., keep description exactly same<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>Media \u2192 OCI Offload<\/strong> (or <strong>Settings \u2192 OCI Offload<\/strong>) and fill in <strong>Region, Namespace, Access Key, Secret Key, Bucket<\/strong>.<\/li>\n<li>Enable <strong>Offload new uploads<\/strong> and optionally <strong>Keep local copy<\/strong>.<\/li>\n<li>(Optional) Run <strong>Backfill<\/strong> to move existing media.<\/li>\n<li>(Optional) Place a CDN in front of your bucket for faster delivery.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20it%20support%20private%20and%20public%20buckets%3F'><h3>Does it support private and public buckets?<\/h3><\/dt>\n<dd><p>Yes. You can use either. For private buckets, ensure your credentials have permission to PUT\/GET objects.<\/p><\/dd>\n<dt id='do%20i%20need%20a%20cdn%3F'><h3>Do I need a CDN?<\/h3><\/dt>\n<dd><p>No. It works without a CDN. A CDN is optional for better global performance and caching.<\/p><\/dd>\n<dt id='what%20endpoint%20style%20does%20it%20use%3F'><h3>What endpoint style does it use?<\/h3><\/dt>\n<dd><p>Path-style S3 endpoints for OCI Object Storage (compat layer).<\/p><\/dd>\n<dt id='what%20does%20the%20health%20check%20do%3F'><h3>What does the Health Check do?<\/h3><\/dt>\n<dd><p>It writes a small test file to your bucket and reads it back to confirm connectivity and signing.<\/p><\/dd>\n<dt id='can%20i%20keep%20media%20on%20my%20server%20as%20well%3F'><h3>Can I keep media on my server as well?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Keep local copy<\/strong> to store both locally and on OCI.<\/p><\/dd>\n<dt id='what%20if%20i%20stop%20using%20the%20plugin%20later%3F'><h3>What if I stop using the plugin later?<\/h3><\/dt>\n<dd><p>Your media remains in your OCI bucket. If you kept local copies, your site will continue serving them locally after deactivation. If not, re-point URLs or re-download files from the bucket.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Fix Bugs<\/li>\n<li>UX improvement<\/li>\n<li>Admin JS moved from inline  to enqueued file to comply with wp.org guidelines.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Backfill UX: show \"Backfill in progress...\" while running and add a <strong>Stop<\/strong> button to cancel remaining batches.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>S3 signing aligned with <code>mc<\/code>: removed extra region headers and always send explicit <code>Content-Length<\/code> to avoid 403\/SignatureDoesNotMatch on OCI.<\/li>\n<\/ul>","raw_excerpt":"Offload your Media Library to Oracle Cloud (OCI) via S3. Supports private and public buckets.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/250189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=250189"}],"author":[{"embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/articla79"}],"wp:attachment":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=250189"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=250189"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=250189"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=250189"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=250189"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=250189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}