[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fItnIN9ysoNW63iCLr9azhjx89pQ9VvPtxhfe-EZco2k":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":22,"download_link":23,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":35,"analysis":134,"fingerprints":367},"opal-aws-s3","Opal Sync Media to Amazon S3","1.3.0","wpopal","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpopal\u002F","\u003Cp>Boost your media workflow in WordPress using S3-compatible object storage. This plugin allows you to offload media files to Amazon S3 for better performance and scalability. Optionally, you can configure Amazon CloudFront as a CDN to serve your media files faster.\u003C\u002Fp>\n\u003Ch3>Features:\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Main Features\u003C\u002Fstrong>:\u003Cbr \u002F>\n– \u003Cstrong>Manual or Automatic Media Scan\u003C\u002Fstrong>: Scan your media library manually or automatically using WP-Cron. You can configure the cron schedule to fit your needs.\u003Cbr \u002F>\n– \u003Cstrong>Manual or Automatic Upload\u003C\u002Fstrong>: Upload scanned media files to S3 manually or automatically, with customizable scheduling similar to the scan feature.\u003Cbr \u002F>\n– \u003Cstrong>CloudFront Integration\u003C\u002Fstrong>: Easily integrate Amazon CloudFront to serve media files via CDN, improving delivery speed.\u003Cbr \u002F>\n– \u003Cstrong>Post Type Filtering\u003C\u002Fstrong>: Support scanning and uploading media files associated with specific post types only.\u003Cbr \u002F>\n– \u003Cstrong>WP CLI Support\u003C\u002Fstrong>: Provides WP CLI commands for fast and bulk operations if you have command line access.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Configuration Required\u003C\u002Fstrong>:\u003Cbr \u002F>\n– \u003Cstrong>AWS S3 Access key:\u003C\u002Fstrong>: Access key provided by S3 Service.\u003Cbr \u002F>\n– \u003Cstrong>AWS S3 Secret key:\u003C\u002Fstrong>: Secret key provided by S3 Service.\u003Cbr \u002F>\n– \u003Cstrong>Bucket Name\u003C\u002Fstrong>: The name of your S3 bucket where media files will be stored.\u003Cbr \u002F>\n– \u003Cstrong>Region\u003C\u002Fstrong>: The AWS region where your S3 bucket is located.\u003Cbr \u002F>\n– \u003Cstrong>CloudFront URL (Optional)\u003C\u002Fstrong>: If you use Amazon CloudFront, provide the distribution URL for faster delivery.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwpopal.com\u002Fcontact\u002F\" rel=\"nofollow ugc\">Free Support\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to Amazon S3 and optionally Amazon CloudFront to offload and serve media files. Below is detailed information about the external services:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Service Name\u003C\u002Fstrong>: Amazon S3 (amazon.com)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Used to store and serve media files (images, videos, documents, etc.) uploaded to the WordPress media library.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Sent\u003C\u002Fstrong>: Media files (e.g., images, videos, documents) and metadata (e.g., file names, paths) are sent to the configured S3 bucket.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: Data is sent when a file is uploaded to the WordPress media library or when the plugin syncs existing files to S3.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configuration Required\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>Bucket Name\u003C\u002Fli>\n\u003Cli>AWS Region\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fservice-terms\u002F\" rel=\"nofollow ugc\">Amazon S3 Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fprivacy\u002F\" rel=\"nofollow ugc\">Amazon Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Optional Service\u003C\u002Fstrong>: Localstack (for testing environments localstack.cloud)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Simulates Amazon S3 locally for testing purposes.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Sent\u003C\u002Fstrong>: Media files and metadata are sent to the Localstack instance running on the developer’s machine.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: Data is sent when \u003Ccode>OAWS_LOCALSTACK_MODE\u003C\u002Fcode> is set to \u003Ccode>true\u003C\u002Fcode> in the plugin configuration.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configuration\u003C\u002Fstrong>: To enable Localstack, set the constant \u003Ccode>OAWS_LOCALSTACK_MODE\u003C\u002Fcode> to \u003Ccode>true\u003C\u002Fcode> in your WordPress configuration file.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Documentation\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fdocs.localstack.cloud\u002F\" rel=\"nofollow ugc\">Localstack Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Optional Service\u003C\u002Fstrong>: Amazon CloudFront (if configured)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Used as a Content Delivery Network (CDN) to serve media files faster by caching them closer to users.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Sent\u003C\u002Fstrong>: URLs of media files stored in S3.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: Data is sent when the plugin generates URLs for media files.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configuration Required\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>CloudFront Distribution URL\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fservice-terms\u002F\" rel=\"nofollow ugc\">Amazon CloudFront Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fprivacy\u002F\" rel=\"nofollow ugc\">Amazon Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n","This plugin uploads files from the WordPress media directory to an AWS S3 bucket and replaces their original URLs with the corresponding S3 or CloudFr &hellip;",0,431,"2025-12-05T02:53:00.000Z","6.9.4","5.0","7.0",[18,19,20,21],"aws","cdn","media","s3","https:\u002F\u002Fwpopal.com\u002Fcontact\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fopal-aws-s3.1.3.0.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":31,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},19,2980,90,50,81,"2026-04-04T13:44:08.450Z",[36,61,81,101,118],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":14,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":56,"download_link":57,"security_score":58,"vuln_count":59,"unpatched_count":11,"last_vuln_date":60,"fetched_at":26},"upcasted-s3-offload","Upcasted S3 Offload – AWS S3, DigitalOcean Spaces, Backblaze, MinIO Storage Integration","3.1.0","upcasted","https:\u002F\u002Fprofiles.wordpress.org\u002Fupcasted\u002F","\u003Cp>Upcasted S3 Offload seamlessly integrates your WordPress Media Library with AWS S3 and other S3-compatible storage providers including DigitalOcean Spaces, Linode Object Storage, MinIO, Wasabi, Backblaze, Vultr Object Storage, DreamObjects, and more.\u003C\u002Fp>\n\u003Cp>This powerful plugin optimizes your website’s performance by efficiently managing media files in cloud storage, reducing server load, and improving loading times. It automatically moves your media files to S3 storage and handles URL rewriting, ensuring a smooth user experience.\u003C\u002Fp>\n\u003Ch4>Why Choose Upcasted S3 Offload?\u003C\u002Fh4>\n\u003Ch4>⚡ Performance Benefits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Significantly reduce server load through offloaded media storage\u003C\u002Fli>\n\u003Cli>Optimize website performance with cloud-based delivery\u003C\u002Fli>\n\u003Cli>Boost SEO rankings with faster page load times\u003C\u002Fli>\n\u003Cli>Enhance user experience with optimized content delivery\u003C\u002Fli>\n\u003Cli>Improve global reach with distributed storage locations\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>💰 Cost Savings\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Reduce hosting costs by offloading media storage\u003C\u002Fli>\n\u003Cli>Lower bandwidth usage on your main server\u003C\u002Fli>\n\u003Cli>Eliminate storage space concerns\u003C\u002Fli>\n\u003Cli>Avoid expensive hosting upgrades\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🔒 Security & Reliability\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Bank-grade encryption for credentials\u003C\u002Fli>\n\u003Cli>Automatic file redundancy and backup\u003C\u002Fli>\n\u003Cli>Enterprise-level security protocols\u003C\u002Fli>\n\u003Cli>Protected file transfer system\u003C\u002Fli>\n\u003Cli>Leverages S3 providers’ robust infrastructure\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🚀 Free Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Unlimited file migrations\u003C\u002Fli>\n\u003Cli>WordPress Multisite support\u003C\u002Fli>\n\u003Cli>One-click quick setup wizard\u003C\u002Fli>\n\u003Cli>One-click bucket creation\u003C\u002Fli>\n\u003Cli>Multi-provider compatibility (AWS S3, DigitalOcean, etc.)\u003C\u002Fli>\n\u003Cli>Custom endpoint configuration\u003C\u002Fli>\n\u003Cli>Flexible region selection\u003C\u002Fli>\n\u003Cli>Advanced file management\u003C\u002Fli>\n\u003Cli>Smart file type filtering\u003C\u002Fli>\n\u003Cli>Secure credential management\u003C\u002Fli>\n\u003Cli>High-performance uploads\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>💎 PRO Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Priority email support\u003C\u002Fli>\n\u003Cli>Automatic premium updates\u003C\u002Fli>\n\u003Cli>Custom batch size control\u003C\u002Fli>\n\u003Cli>Advanced file type filtering\u003C\u002Fli>\n\u003Cli>Background file migration\u003C\u002Fli>\n\u003Cli>CDN integration support\u003C\u002Fli>\n\u003Cli>Large file support (up to 5TB)\u003C\u002Fli>\n\u003Cli>Bulk migration tools\u003C\u002Fli>\n\u003Cli>Unified migration progress with elapsed time, ETA, remaining items, and finished notice\u003C\u002Fli>\n\u003Cli>Failed Items diagnostics panel with pagination, full error viewer, and single\u002Fbulk retry actions\u003C\u002Fli>\n\u003Cli>Progressive single-item retry with granular tasks and mini progress bar\u003C\u002Fli>\n\u003Cli>Migration Locks diagnostics with the ability to force unlock stuck runs\u003C\u002Fli>\n\u003Cli>Retry safety: max attempts and permanent failure handling (permanent badge; excluded from auto runs)\u003C\u002Fli>\n\u003C\u002Ful>\n","Easily migrate and manage WordPress Media Library files to AWS S3 or S3-compatible storage providers. Boost performance and reduce hosting costs.",200,11827,68,10,"2025-12-15T15:13:00.000Z","4.9","7.4",[52,53,54,55,21],"aws-s3","digitalocean-spaces","media-library","object-storage","https:\u002F\u002Fupcasted.com\u002Fupcasted-s3-offload","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fupcasted-s3-offload.3.1.0.zip",99,1,"2025-02-03 00:00:00",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":46,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":75,"tags":76,"homepage":79,"download_link":80,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"sync-media-with-aws-s3-cloudfront","Sync media with AWS S3 CloudFront","1.0.5","SoftSprint","https:\u002F\u002Fprofiles.wordpress.org\u002Fsoftsprint\u002F","\u003Cp>Plugin scans the media upload directory of your WordPress site and pushes media files from there to AWS S3 bucket. Thus files from wordpress upload directory (default it is wp-content\u002Fuploads) are moved to AWS S3 bucket. Besides it is possible to change your images files sources URLs to AWS ones – their src attribute in the HTML will have URLs of AWS bucket CloudFront. Finally you site performance will grow\u003C\u002Fp>\n","Plugin uploads the files from WordPress media upload directory to AWS S3 bucket and replaces their initial URLs with the new URLs of AWS S3 bucket (ch &hellip;",40,4347,5,"2025-04-08T13:53:00.000Z","6.8.5","5.3","7.1",[18,20,21,77,78],"uploads","wp-content","https:\u002F\u002Fsoftsprint.net\u002Fsync-media-with-aws-s3-cloudfront\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsync-media-with-aws-s3-cloudfront.zip",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":47,"downloaded":89,"rating":90,"num_ratings":59,"last_updated":91,"tested_up_to":92,"requires_at_least":93,"requires_php":94,"tags":95,"homepage":98,"download_link":99,"security_score":100,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"s3-spaces-sync","S3 Spaces Sync","1.0.0","Aris Ripandi","https:\u002F\u002Fprofiles.wordpress.org\u002Friespandi\u002F","\u003Cp>S3 Spaces Sync plugin connects your Media Library to a container in DigitalOcean Spaces. It syncs data from your website to cloud storage and replaces links to images (optional). You may keep the media locally (on your server) and make backup copy to cloud storage, or just serve it all from DigitalOcean Spaces.\u003C\u002Fp>\n\u003Cp>In order to use this plugin, you have to create a DigitalOcean Spaces API key.\u003C\u002Fp>\n\u003Cp>You may now define constants in order to configure the plugin. If the constant is defined, it overwrites the value from settings page.\u003C\u002Fp>\n\u003Ch4>Contants Description\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>S3_SPACE_KEY – DigitalOcean Spaces key\u003C\u002Fli>\n\u003Cli>S3_SPACE_SECRET – DigitalOcean Spaces secret,\u003C\u002Fli>\n\u003Cli>S3_SPACE_ENDPOINT – DigitalOcean Spaces endpoint,\u003C\u002Fli>\n\u003Cli>S3_SPACE_CONTAINER – DigitalOcean Spaces container,\u003C\u002Fli>\n\u003Cli>S3_SPACE_STORAGE_PATH – The path to the file in the storage, will appear as a prefix,\u003C\u002Fli>\n\u003Cli>S3_SPACE_FILE_ONLY – Keep files only in DigitalOcean Spaces or not, values (true|false),\u003C\u002Fli>\n\u003Cli>S3_SPACE_FILE_DELETE – Remove files in DigitalOcean Spaces on delete or not, values (true|false),\u003C\u002Fli>\n\u003Cli>S3_SPACE_FILTER – A Regex filter,\u003C\u002Fli>\n\u003Cli>S3_SPACE_CDN_URL – A full url to the files, WP Constant,\u003C\u002Fli>\n\u003Cli>S3_SPACE_UPLOAD_PATH – A path to the local files, WP Constant\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>There is a known issue with the built in WordPress Image Editor, it will not upload changed images. Know how to fix this, PR welcome.\u003C\u002Fp>\n","This plugin is allow you to synchronize your WordPress media library with DigitalOcean Spaces.",1474,20,"2018-12-31T21:24:00.000Z","5.0.25","4.6","5.6",[18,96,20,21,97],"digitalocean","storage","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fs3-spaces\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fs3-spaces-sync.1.0.0.zip",85,{"slug":102,"name":103,"version":104,"author":105,"author_profile":106,"description":107,"short_description":108,"active_installs":11,"downloaded":109,"rating":11,"num_ratings":11,"last_updated":110,"tested_up_to":73,"requires_at_least":111,"requires_php":16,"tags":112,"homepage":116,"download_link":117,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"articla-media-offload-lite-for-oracle-cloud-infrastructure","Articla media offload lite for oracle cloud infrastructure","1.3.3","articla79","https:\u002F\u002Fprofiles.wordpress.org\u002Farticla79\u002F","\u003Cp>Move your WordPress media to Oracle Cloud Infrastructure (OCI) Object Storage and serve it directly from there—reducing disk usage, speeding up delivery, and keeping your uploads organized.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key features\u003C\u002Fstrong>\u003Cbr \u002F>\n– ✅ Offload new uploads to OCI Object Storage (S3-compatible, path-style).\u003Cbr \u002F>\n– 🔁 Backfill existing media in batches, with progress notice and stop button.\u003Cbr \u002F>\n– 🔐 Supports private and public buckets.\u003Cbr \u002F>\n– 🔗 Rewrites media URLs to load from your bucket (or your CDN in front of it).\u003Cbr \u002F>\n– 🩺 One-click Health Check to validate credentials, bucket, and endpoint.\u003Cbr \u002F>\n– ⚙️ Non-destructive option to keep a local copy of files.\u003Cbr \u002F>\n– 🧩 Works with common media workflows and doesn’t lock you in.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How it works (quick start)\u003C\u002Fstrong>\u003Cbr \u002F>\n1) Go to \u003Cstrong>Media \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> OCI Offload\u003C\u002Fstrong> and enter your \u003Cstrong>Region, Namespace, Access Key, Secret Key, and Bucket\u003C\u002Fstrong>.\u003Cbr \u002F>\n2) Click \u003Cstrong>Save\u003C\u002Fstrong>, then enable \u003Cstrong>Offload new uploads\u003C\u002Fstrong> (and optionally \u003Cstrong>Keep local copy\u003C\u002Fstrong>).\u003Cbr \u002F>\n3) Use \u003Cstrong>Backfill\u003C\u002Fstrong> to move existing media (optional).\u003Cbr \u002F>\n4) Optionally put a CDN in front of your bucket for global performance.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Who is it for?\u003C\u002Fstrong>\u003Cbr \u002F>\n– Sites that want to save disk space on the web server.\u003Cbr \u002F>\n– Publishers that prefer serving media from OCI directly or behind a CDN.\u003Cbr \u002F>\n– Teams needing simple, reliable S3-compatible offloading with minimal setup.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>No telemetry. Only your configured requests to OCI are made.\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to \u003Cstrong>Oracle Cloud Infrastructure (OCI) Object Storage\u003C\u002Fstrong> in order to upload and read media files.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>What service is used and why\u003C\u002Fstrong>: Oracle Cloud Object Storage (domains under \u003Ccode>*.oraclecloud.com\u003C\u002Fcode>, for example \u003Ccode>{namespace}.compat.objectstorage.{region}.oraclecloud.com\u003C\u002Fcode>) is used to store (PUT) and retrieve (GET) your media files and to run an optional health check.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>What data is sent and when\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>When you enable “Offload new uploads”, each uploaded attachment (file contents, filename\u002Fpath) is sent via HTTPS \u003Ccode>PUT\u003C\u002Fcode> to your configured bucket and namespace.\u003C\u002Fli>\n\u003Cli>The admin \u003Cstrong>Health Check\u003C\u002Fstrong> uploads a small text file and immediately reads it back to verify connectivity.\u003C\u002Fli>\n\u003Cli>Standard request metadata such as your server’s IP and user agent are visible to Oracle as with any HTTPS request.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Authentication\u003C\u002Fstrong>: 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy and terms\u003C\u002Fstrong>: See Oracle’s \u003Ca href=\"https:\u002F\u002Fwww.oracle.com\u002Flegal\u002Fterms.html\" rel=\"nofollow ugc\">Terms of Use\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.oracle.com\u002Flegal\u002Fprivacy\u002F\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Opt-out\u003C\u002Fstrong>: Disable “Offload new uploads” or deactivate the plugin. The plugin does not contact any external service when offloading is disabled., keep description exactly same\u003C\u002Fli>\n\u003C\u002Ful>\n","Offload your Media Library to Oracle Cloud (OCI) via S3. Supports private and public buckets.",295,"2025-09-19T20:05:00.000Z","6.0",[113,55,114,115,21],"cdn-media","oci","oracle-cloud","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Farticla-media-offload-lite-for-oracle-cloud-infrastructure.zip",{"slug":119,"name":120,"version":121,"author":122,"author_profile":123,"description":124,"short_description":125,"active_installs":11,"downloaded":126,"rating":11,"num_ratings":11,"last_updated":127,"tested_up_to":14,"requires_at_least":94,"requires_php":50,"tags":128,"homepage":132,"download_link":133,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"swift-offload","Swift Offload","1.0.3","swiftplugins","https:\u002F\u002Fprofiles.wordpress.org\u002Fswiftplugins\u002F","\u003Cp>\u003Cstrong>Swift Offload\u003C\u002Fstrong> 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.\u003C\u002Fp>\n\u003Ch4>Why Use Swift Offload?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Reduce Server Storage\u003C\u002Fstrong> – Free up disk space by storing media in the cloud\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Faster Page Loads\u003C\u002Fstrong> – Serve media through CloudFront CDN\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Scalable\u003C\u002Fstrong> – Handle unlimited media without server constraints\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cost Effective\u003C\u002Fstrong> – Use affordable storage providers like Wasabi\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multiple Storage Providers\u003C\u002Fstrong> – Amazon S3, Wasabi, DigitalOcean Spaces, MinIO\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CloudFront CDN\u003C\u002Fstrong> – Integrated CDN support with signed URLs for private content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk Offload\u003C\u002Fstrong> – Background processing to offload existing media\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Auto Offload\u003C\u002Fstrong> – Automatically offload new uploads\u003C\u002Fli>\n\u003Cli>\u003Cstrong>URL Rewriting\u003C\u002Fstrong> – Seamlessly rewrite media URLs in your content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Image Optimization\u003C\u002Fstrong> – WebP conversion and compression\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Local File Removal\u003C\u002Fstrong> – Option to delete local copies after offload\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WP-CLI Support\u003C\u002Fstrong> – Automate operations via command line\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modern Admin UI\u003C\u002Fstrong> – Clean, intuitive React-based interface\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Supported Storage Providers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Amazon S3\u003C\u002Fstrong> – The industry standard for cloud storage\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Wasabi\u003C\u002Fstrong> – S3-compatible with no egress fees\u003C\u002Fli>\n\u003Cli>\u003Cstrong>DigitalOcean Spaces\u003C\u002Fstrong> – Simple, affordable object storage\u003C\u002Fli>\n\u003Cli>\u003Cstrong>MinIO\u003C\u002Fstrong> – Self-hosted S3-compatible storage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy & Data\u003C\u002Fh4>\n\u003Cp>Swift Offload respects your privacy:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Does NOT collect any user data without consent\u003C\u002Fli>\n\u003Cli>Does NOT send data to external servers (except your configured cloud storage)\u003C\u002Fli>\n\u003Cli>Does NOT track users or collect analytics\u003C\u002Fli>\n\u003Cli>Stores cloud storage credentials securely in your WordPress database\u003C\u002Fli>\n\u003Cli>All media operations happen on your server\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Third-Party Libraries\u003C\u002Fh4>\n\u003Cp>This plugin uses the following open-source libraries:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>React – MIT License\u003C\u002Fli>\n\u003Cli>Tailwind CSS – MIT License\u003C\u002Fli>\n\u003Cli>Radix UI – MIT License\u003C\u002Fli>\n\u003Cli>TanStack Query – MIT License\u003C\u002Fli>\n\u003Cli>Lucide Icons – ISC License\u003C\u002Fli>\n\u003Cli>Shadcn\u002Fui – MIT License\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Source Code\u003C\u002Fh4>\n\u003Cp>The original source code for all compiled assets is included in this plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>React Admin App: \u003Ccode>app\u002Fsrc\u002F\u003C\u002Fcode> directory\u003C\u002Fli>\n\u003Cli>SCSS Styles: \u003Ccode>dev\u002Fscss\u002F\u003C\u002Fcode> directory\u003C\u002Fli>\n\u003Cli>JavaScript: \u003Ccode>dev\u002Fjs\u002F\u003C\u002Fcode> directory\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Build tools used: Vite, TypeScript, PostCSS, Sass\u003C\u002Fp>\n\u003Cp>To build from source:\u003Cbr \u002F>\n    cd app && npm install && npm run build\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to external services only when explicitly configured by you:\u003C\u002Fp>\n\u003Ch4>Cloud Storage Providers (User Configured)\u003C\u002Fh4>\n\u003Cp>When you configure cloud storage, the plugin connects to your chosen provider to upload and manage media files.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Supported Providers:\u003C\u002Fstrong> Amazon S3, Wasabi, DigitalOcean Spaces, MinIO, CloudFront\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Sent:\u003C\u002Fstrong> Your media files (only when you initiate offload operations)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> Only when you configure storage and perform offload\u002Fsync operations\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Your Responsibility:\u003C\u002Fstrong> You must review and agree to the terms of service of your chosen storage provider:\n\u003Cul>\n\u003Cli>Amazon S3: \u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fservice-terms\u002F\" rel=\"nofollow ugc\">AWS Terms\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Wasabi: \u003Ca href=\"https:\u002F\u002Fwasabi.com\u002Flegal\u002F\" rel=\"nofollow ugc\">Wasabi Terms\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>DigitalOcean: \u003Ca href=\"https:\u002F\u002Fwww.digitalocean.com\u002Flegal\u002Fterms-of-service-agreement\" rel=\"nofollow ugc\">DO Terms\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Deactivation Feedback (Optional)\u003C\u002Fh4>\n\u003Cp>When deactivating, you may optionally provide feedback to help us improve.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service Provider:\u003C\u002Fstrong> Swift Plugins\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Sent:\u003C\u002Fstrong> Feedback reason, comments (only if you choose to submit)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> Only when you voluntarily submit the feedback form\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Use:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fswiftplugins.pro\u002Fterms-of-service\u002F\" rel=\"nofollow ugc\">Terms\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fswiftplugins.pro\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Privacy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Offload WordPress media to Amazon S3, Wasabi, DigitalOcean Spaces, or MinIO. Serve files via CloudFront CDN for faster delivery.",153,"2026-02-27T08:42:00.000Z",[129,19,130,131,21],"amazon-s3","cloud-storage","media-offload","https:\u002F\u002Fswiftplugins.pro\u002Fswift-offload","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fswift-offload.1.0.3.zip",{"attackSurface":135,"codeSignals":259,"taintFlows":306,"riskAssessment":363,"analyzedAt":366},{"hooks":136,"ajaxHandlers":205,"restRoutes":248,"shortcodes":256,"cronEvents":257,"entryPointCount":258,"unprotectedCount":11},[137,143,148,151,156,160,164,169,172,175,178,181,185,188,191,194,198,201,203],{"type":138,"name":139,"callback":140,"priority":90,"file":141,"line":142},"action","admin_enqueue_scripts","enqueue_backend_scripts_and_styles","includes\\classes\\class-oaws-run.php",45,{"type":138,"name":144,"callback":145,"file":146,"line":147},"admin_footer","mask_loading","includes\\classes\\class-oaws-settings.php",44,{"type":138,"name":149,"callback":150,"file":146,"line":142},"admin_menu","custom_submenu",{"type":152,"name":153,"callback":154,"priority":58,"file":146,"line":155},"filter","cron_schedules","trigger_schedule_event",52,{"type":138,"name":157,"callback":158,"file":146,"line":159},"rest_api_init","register_cron_job_routes",54,{"type":152,"name":161,"callback":162,"priority":58,"file":146,"line":163},"esc_html","oaws_prevent_escape_html",375,{"type":138,"name":165,"callback":166,"file":167,"line":168},"init","closure","includes\\classes\\class-oaws-url.php",39,{"type":152,"name":170,"callback":166,"priority":47,"file":167,"line":171},"wp_get_attachment_url",46,{"type":152,"name":173,"callback":166,"priority":47,"file":167,"line":174},"wp_get_attachment_image_src",51,{"type":152,"name":176,"callback":166,"priority":47,"file":167,"line":177},"wp_calculate_image_srcset",59,{"type":152,"name":179,"callback":166,"priority":47,"file":167,"line":180},"wp_prepare_attachment_for_js",66,{"type":152,"name":182,"callback":183,"file":167,"line":184},"the_content","replace_s3_urls_in_content",76,{"type":152,"name":186,"callback":183,"file":167,"line":187},"widget_text",77,{"type":152,"name":189,"callback":183,"file":167,"line":190},"the_excerpt",78,{"type":152,"name":192,"callback":193,"priority":47,"file":167,"line":33},"the_editor_content","replace_in_classic_editor",{"type":152,"name":195,"callback":196,"priority":47,"file":167,"line":197},"rest_prepare_post","replace_in_gutenberg_editor",82,{"type":152,"name":161,"callback":162,"priority":58,"file":199,"line":200},"includes\\helpers\\core.php",35,{"type":152,"name":161,"callback":162,"priority":58,"file":199,"line":202},151,{"type":152,"name":161,"callback":162,"priority":58,"file":199,"line":204},203,[206,213,217,220,224,228,232,235,239,242,245],{"action":207,"nopriv":208,"callback":209,"hasNonce":210,"hasCapCheck":208,"file":211,"line":212},"oaws_start_ajax_scan",false,"start_ajax_scan",true,"includes\\classes\\class-oaws-scanning.php",42,{"action":214,"nopriv":208,"callback":215,"hasNonce":210,"hasCapCheck":208,"file":211,"line":216},"oaws_stop_ajax_scan","stop_ajax_scan",43,{"action":218,"nopriv":208,"callback":219,"hasNonce":210,"hasCapCheck":208,"file":211,"line":147},"oaws_reset_all_scanned","reset_all_scanned",{"action":221,"nopriv":208,"callback":222,"hasNonce":210,"hasCapCheck":208,"file":146,"line":223},"oaws_check_connection","check_connection",47,{"action":225,"nopriv":208,"callback":226,"hasNonce":210,"hasCapCheck":208,"file":146,"line":227},"oaws_handle_settings_form","handle_settings_form",48,{"action":229,"nopriv":208,"callback":230,"hasNonce":210,"hasCapCheck":208,"file":146,"line":231},"oaws_settings_export","settings_export",49,{"action":233,"nopriv":208,"callback":234,"hasNonce":210,"hasCapCheck":208,"file":146,"line":32},"oaws_handle_import_settings","handle_import_settings",{"action":236,"nopriv":208,"callback":237,"hasNonce":210,"hasCapCheck":208,"file":238,"line":223},"oaws_get_upload_status","get_upload_status","includes\\classes\\class-oaws-uploading.php",{"action":240,"nopriv":208,"callback":241,"hasNonce":210,"hasCapCheck":208,"file":238,"line":227},"oaws_manual_upload_attachment","manual_upload_attachment",{"action":243,"nopriv":208,"callback":244,"hasNonce":210,"hasCapCheck":208,"file":238,"line":231},"oaws_requeue_failed_uploads","requeue_failed_uploads",{"action":246,"nopriv":208,"callback":247,"hasNonce":210,"hasCapCheck":208,"file":238,"line":32},"oaws_reset_all_uploaded","reset_all_uploaded",[249],{"namespace":250,"route":251,"methods":252,"callback":254,"permissionCallback":166,"file":146,"line":255},"oaws\u002Fv1","\u002Frun-scan\u002F",[253],"GET","oaws_route_run_scan_handler",540,[],[],12,{"dangerousFunctions":260,"sqlUsage":261,"outputEscaping":274,"fileOperations":59,"externalRequests":11,"nonceChecks":276,"capabilityChecks":59,"bundledLibraries":296},[],{"prepared":262,"raw":263,"locations":264},33,3,[265,268,271],{"file":146,"line":266,"context":267},108,"$wpdb->get_var() with variable interpolation",{"file":199,"line":269,"context":270},365,"$wpdb->get_col() with variable interpolation",{"file":199,"line":272,"context":273},719,"$wpdb->query() with variable interpolation",{"escaped":275,"rawEcho":276,"locations":277},123,11,[278,281,284,286,287,288,290,292,293,294,295],{"file":199,"line":279,"context":280},282,"raw output",{"file":282,"line":283,"context":280},"views\\admin-popup.php",15,{"file":282,"line":285,"context":280},16,{"file":282,"line":29,"context":280},{"file":282,"line":90,"context":280},{"file":282,"line":289,"context":280},26,{"file":282,"line":291,"context":280},31,{"file":282,"line":200,"context":280},{"file":282,"line":147,"context":280},{"file":282,"line":32,"context":280},{"file":282,"line":174,"context":280},[297,300,303],{"name":298,"version":25,"knownCves":299},"Select2",[],{"name":301,"version":25,"knownCves":302},"jQuery",[],{"name":304,"version":25,"knownCves":305},"Guzzle",[],[307,325,333,345,354],{"entryPoint":308,"graph":309,"unsanitizedCount":11,"severity":324},"handle_import_settings (includes\\classes\\class-oaws-settings.php:382)",{"nodes":310,"edges":322},[311,316],{"id":312,"type":313,"label":314,"file":146,"line":315},"n0","source","$_FILES",404,{"id":317,"type":318,"label":319,"file":146,"line":320,"wp_function":321},"n1","sink","update_option() [Settings Manipulation]",422,"update_option",[323],{"from":312,"to":317,"sanitized":210},"low",{"entryPoint":326,"graph":327,"unsanitizedCount":11,"severity":324},"\u003Cclass-oaws-settings> (includes\\classes\\class-oaws-settings.php:0)",{"nodes":328,"edges":331},[329,330],{"id":312,"type":313,"label":314,"file":146,"line":315},{"id":317,"type":318,"label":319,"file":146,"line":320,"wp_function":321},[332],{"from":312,"to":317,"sanitized":210},{"entryPoint":334,"graph":335,"unsanitizedCount":11,"severity":324},"\u003Cimport-export> (views\\tabs\\import-export.php:0)",{"nodes":336,"edges":343},[337,340],{"id":312,"type":313,"label":338,"file":339,"line":47},"$_GET","views\\tabs\\import-export.php",{"id":317,"type":318,"label":341,"file":339,"line":258,"wp_function":342},"echo() [XSS]","echo",[344],{"from":312,"to":317,"sanitized":210},{"entryPoint":346,"graph":347,"unsanitizedCount":11,"severity":324},"\u003Cscanning> (views\\tabs\\scanning.php:0)",{"nodes":348,"edges":352},[349,351],{"id":312,"type":313,"label":338,"file":350,"line":47},"views\\tabs\\scanning.php",{"id":317,"type":318,"label":341,"file":350,"line":258,"wp_function":342},[353],{"from":312,"to":317,"sanitized":210},{"entryPoint":355,"graph":356,"unsanitizedCount":11,"severity":324},"\u003Csettings-form> (views\\tabs\\settings-form.php:0)",{"nodes":357,"edges":361},[358,360],{"id":312,"type":313,"label":338,"file":359,"line":47},"views\\tabs\\settings-form.php",{"id":317,"type":318,"label":341,"file":359,"line":258,"wp_function":342},[362],{"from":312,"to":317,"sanitized":210},{"summary":364,"deductions":365},"The 'opal-aws-s3' plugin v1.3.0 demonstrates a generally strong security posture based on the provided static analysis and vulnerability history. The plugin successfully implements authentication and authorization checks on all identified AJAX handlers and REST API routes, leaving no entry points directly exposed. Furthermore, the high percentage of SQL queries using prepared statements and properly escaped outputs are positive indicators of secure coding practices. The absence of known vulnerabilities in its history also contributes to a favorable security profile.",[],"2026-03-17T06:39:38.032Z",{"wat":368,"direct":393},{"assetPaths":369,"generatorPatterns":380,"scriptPaths":381,"versionParams":382},[370,371,372,373,374,375,376,377,378,379],"\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fcss\u002Fstyles.css","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fcss\u002Flibs\u002Fjquery.toast.min.css","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fcss\u002Flibs\u002Fselect2.css","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fcss\u002Flibs\u002Fsweetalert2.min.css","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fjs\u002Flibs\u002Finput-number-format.jquery.js","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fjs\u002Flibs\u002Fjquery.toast.js","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fjs\u002Flibs\u002Fselect2.full.js","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fjs\u002Flibs\u002Fsweetalert2.all.js","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fjs\u002Fsettings.js","\u002Fwp-content\u002Fplugins\u002Fopal-aws-s3\u002Fassets\u002Fjs\u002Fscanning.js",[],[374,375,376,377,378,379],[383,384,385,386,387,388,389,390,391,392],"opal-aws-s3\u002Fassets\u002Fcss\u002Fstyles.css?ver=","opal-aws-s3\u002Fassets\u002Fcss\u002Flibs\u002Fjquery.toast.min.css?ver=","opal-aws-s3\u002Fassets\u002Fcss\u002Flibs\u002Fselect2.css?ver=","opal-aws-s3\u002Fassets\u002Fcss\u002Flibs\u002Fsweetalert2.min.css?ver=","opal-aws-s3\u002Fassets\u002Fjs\u002Flibs\u002Finput-number-format.jquery.js?ver=","opal-aws-s3\u002Fassets\u002Fjs\u002Flibs\u002Fjquery.toast.js?ver=","opal-aws-s3\u002Fassets\u002Fjs\u002Flibs\u002Fselect2.full.js?ver=","opal-aws-s3\u002Fassets\u002Fjs\u002Flibs\u002Fsweetalert2.all.js?ver=","opal-aws-s3\u002Fassets\u002Fjs\u002Fsettings.js?ver=","opal-aws-s3\u002Fassets\u002Fjs\u002Fscanning.js?ver=",{"cssClasses":394,"htmlComments":395,"htmlAttributes":396,"restEndpoints":397,"jsGlobals":399,"shortcodeOutput":401},[],[],[],[398],"\u002Fwp-json\u002Fopal-aws-s3\u002Fv1\u002Fcron-job",[400],"oaws_script",[]]