[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fCnP9Z09Km6H52Y3JyQa-UNeNQNMPO4_OsLe16Zf9xX8":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":15,"download_link":25,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":35,"analysis":108,"fingerprints":273},"storage-for-edd-via-s3-compatible","Storage for EDD via S3-Compatible","1.2.0","mohammadr3z","https:\u002F\u002Fprofiles.wordpress.org\u002Fmohammadr3z\u002F","\u003Cp>Storage for EDD via S3-Compatible is a powerful extension for Easy Digital Downloads that allows you to store and deliver your digital products using S3-compatible storage services. This plugin provides seamless integration with various S3-compatible storage providers including MinIO, DigitalOcean Spaces, Linode Object Storage, and many others.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>S3 Compatible Storage Support\u003C\u002Fstrong>: Works with MinIO, DigitalOcean Spaces, Linode Object Storage, and other S3-compatible services\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Secure File Delivery\u003C\u002Fstrong>: Generates time-limited, secure download URLs with enforced timeout limits (1-60 minutes) for your digital products\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Easy File Management\u003C\u002Fstrong>: Upload files directly to S3 storage through WordPress admin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media Library Integration\u003C\u002Fstrong>: Browse and select files from your S3 storage within WordPress\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable Expiry\u003C\u002Fstrong>: Set custom expiration times for download links with automatic validation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customizable URL Prefix\u003C\u002Fstrong>: Developers can customize the URL prefix (default: edd-s3cs:\u002F\u002F) using WordPress hooks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security First\u003C\u002Fstrong>: Built with WordPress security best practices including timeout enforcement and input validation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer Friendly\u003C\u002Fstrong>: Clean, well-documented code with hooks and filters\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to Downloads > Settings > Extensions > S3 Storage\u003C\u002Fli>\n\u003Cli>Enter your S3 credentials:\n\u003Cul>\n\u003Cli>Access Key\u003C\u002Fli>\n\u003Cli>Secret Key\u003C\u002Fli>\n\u003Cli>Endpoint URL (e.g., https:\u002F\u002Fs3.example.com)\u003C\u002Fli>\n\u003Cli>Bucket Name\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Set the download link expiry time (in minutes, between 1-60 minutes)\u003C\u002Fli>\n\u003Cli>Save the settings\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Ch4>Browsing and Selecting Files\u003C\u002Fh4>\n\u003Col>\n\u003Cli>When creating or editing a download in Easy Digital Downloads\u003C\u002Fli>\n\u003Cli>Click the “Browse S3” button next to the file URL field\u003C\u002Fli>\n\u003Cli>Browse your S3 storage using the folder navigation\u003C\u002Fli>\n\u003Cli>Use the breadcrumb navigation bar to quickly jump to parent folders\u003C\u002Fli>\n\u003Cli>Use the search box in the header to filter files by name\u003C\u002Fli>\n\u003Cli>Click “Select” to use an existing file for your download\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Uploading New Files\u003C\u002Fh4>\n\u003Col>\n\u003Cli>In the S3 browser, click the “Upload” button in the header row\u003C\u002Fli>\n\u003Cli>The upload form will appear above the file list\u003C\u002Fli>\n\u003Cli>Choose your file and click “Upload”\u003C\u002Fli>\n\u003Cli>After a successful upload, the file URL will be automatically set with the S3 prefix\u003C\u002Fli>\n\u003Cli>Click the button again to hide the upload form\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to your configured S3-compatible storage service to manage files, create download links, and handle file transfers.\u003C\u002Fp>\n\u003Cp>It sends the necessary authentication signatures and file requests to your S3 provider’s servers. This happens when you browse your S3 files in the dashboard, upload files, or when a customer downloads a file.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service\u003C\u002Fstrong>: Your S3-Compatible Provider (e.g., AWS S3, DigitalOcean Spaces, etc.)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Used for\u003C\u002Fstrong>: File browsing, uploading, and generating secure download links.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: Authentication headers (Signature V4), file metadata, file content (during upload).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>URLs\u003C\u002Fstrong>: Configured by the user in the plugin settings (Endpoint URL).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Legal\u003C\u002Fstrong>: Refer to your S1-Compatible provider’s Terms of Service and Privacy Policy.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support and bug reports, please use the WordPress.org plugin support forum.\u003C\u002Fp>\n\u003Cp>If you find this plugin helpful, please consider leaving a review on WordPress.org.\u003C\u002Fp>\n\u003Ch3>Other Storage Providers\u003C\u002Fh3>\n\u003Cp>Looking for a different storage provider? Check out our other plugins:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-box\u002F\" rel=\"ugc\">Storage for EDD via Box\u003C\u002Fa> – Use Box for your digital product storage\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-dropbox\u002F\" rel=\"ugc\">Storage for EDD via Dropbox\u003C\u002Fa> – Use Dropbox for your digital product storage\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-onedrive\u002F\" rel=\"ugc\">Storage for EDD via OneDrive\u003C\u002Fa> – Use Microsoft OneDrive for your digital product storage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>This plugin does not collect or store any personal data. All file storage and delivery is handled through your configured S3-compatible storage service.\u003C\u002Fp>\n","Enable secure cloud storage and delivery of your digital products through S3-compatible services for Easy Digital Downloads.",0,876,100,2,"","6.9.4","5.0","7.4",[20,21,22,23,24],"easy-digital-downloads","edd","s3","s3-compatible","storage","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fstorage-for-edd-via-s3-compatible.1.2.0.zip",null,"2026-03-15T10:48:56.248Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":31,"avg_security_score":13,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},9,51000,30,94,"2026-04-04T11:13:13.117Z",[36,49,60,70,90],{"slug":37,"name":38,"version":39,"author":7,"author_profile":8,"description":40,"short_description":41,"active_installs":11,"downloaded":42,"rating":11,"num_ratings":11,"last_updated":43,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":44,"homepage":15,"download_link":47,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":48},"storage-for-edd-via-box","Storage for EDD via Box","1.1.0","\u003Cp>Storage for EDD via Box is a powerful extension for Easy Digital Downloads that allows you to store and deliver your digital products using Box cloud storage. This plugin provides seamless integration with Box’s API, featuring OAuth2 authentication and secure direct download links.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Box Integration\u003C\u002Fstrong>: Store your digital products securely in Box\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OAuth2 Authentication\u003C\u002Fstrong>: Secure and easy connection to your Box account\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Secure Download Links\u003C\u002Fstrong>: Generates secure links for downloads\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Easy File Management\u003C\u002Fstrong>: Upload files directly to Box through WordPress admin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media Library Integration\u003C\u002Fstrong>: Browse and select files from your Box within WordPress\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Folder Support\u003C\u002Fstrong>: Navigate and organize files in folders\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security First\u003C\u002Fstrong>: Built with WordPress security best practices\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer Friendly\u003C\u002Fstrong>: Clean, well-documented code with hooks and filters\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Create a Box App at \u003Ca href=\"https:\u002F\u002Fapp.box.com\u002Fdevelopers\u002Fconsole\" rel=\"nofollow ugc\">Box Developer Console\u003C\u002Fa> with OAuth 2.0 authentication\u003C\u002Fli>\n\u003Cli>Set OAuth Redirect URI to: \u003Ccode>https:\u002F\u002Fyour-site.com\u002Fwp-admin\u002Fadmin-post.php?action=edbx_oauth_callback\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Go to Downloads > Settings > Extensions > Box Storage\u003C\u002Fli>\n\u003Cli>Enter your Client ID and Client Secret\u003C\u002Fli>\n\u003Cli>Save settings and click “Connect to Box”\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Ch4>Browsing and Selecting Files\u003C\u002Fh4>\n\u003Col>\n\u003Cli>When creating or editing a download in Easy Digital Downloads\u003C\u002Fli>\n\u003Cli>Click the “Browse Box” button next to the file URL field\u003C\u002Fli>\n\u003Cli>Browse your Box storage using the folder navigation\u003C\u002Fli>\n\u003Cli>Use the breadcrumb navigation bar to quickly jump to parent folders\u003C\u002Fli>\n\u003Cli>Use the search box in the header to filter files by name\u003C\u002Fli>\n\u003Cli>Click “Select” to use an existing file for your download\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Uploading New Files\u003C\u002Fh4>\n\u003Col>\n\u003Cli>In the Box browser, click the “Upload” button in the header row\u003C\u002Fli>\n\u003Cli>The upload form will appear above the file list\u003C\u002Fli>\n\u003Cli>Choose your file and click “Upload”\u003C\u002Fli>\n\u003Cli>After a successful upload, the file URL will be automatically set with the Box prefix\u003C\u002Fli>\n\u003Cli>Click the button again to hide the upload form\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to Box API to manage files, create download links, and handle authentication.\u003C\u002Fp>\n\u003Cp>It sends the necessary authentication tokens and file requests to Box servers. This happens when you browse your Box files in the dashboard, upload files, or when a customer downloads a file.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service\u003C\u002Fstrong>: Box API\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Used for\u003C\u002Fstrong>: Authentication, file browsing, uploading, and generating download links.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: OAuth tokens, file metadata, file content (during upload).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>URLs\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>\u003Ccode>https:\u002F\u002Fapi.box.com\u003C\u002Fcode> (API calls)\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Fupload.box.com\u003C\u002Fcode> (File uploads)\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Faccount.box.com\u003C\u002Fcode> (Authentication)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Legal\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.box.com\u002Flegal\u002Ftermsofservice\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.box.com\u002Flegal\u002Fprivacynotice\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support and bug reports, please use the WordPress.org plugin support forum.\u003C\u002Fp>\n\u003Cp>If you find this plugin helpful, please consider leaving a review on WordPress.org.\u003C\u002Fp>\n\u003Ch3>Other Storage Providers\u003C\u002Fh3>\n\u003Cp>Looking for a different storage provider? Check out our other plugins:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-dropbox\u002F\" rel=\"ugc\">Storage for EDD via Dropbox\u003C\u002Fa> – Use Dropbox for your digital product storage\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-onedrive\u002F\" rel=\"ugc\">Storage for EDD via OneDrive\u003C\u002Fa> – Use Microsoft OneDrive for your digital product storage\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-s3-compatible\u002F\" rel=\"ugc\">Storage for EDD via S3-Compatible\u003C\u002Fa> – Use S3-compatible services like MinIO, DigitalOcean Spaces, Linode, Wasabi, and more\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>This plugin requires authorization to access your Box account for file storage and retrieval. It does not collect or store any personal data beyond the OAuth tokens needed to maintain the connection. All file storage and delivery is handled through Box’s secure infrastructure.\u003C\u002Fp>\n","Enable secure cloud storage and delivery of your digital products through Box for Easy Digital Downloads.",34,"2026-03-15T07:59:00.000Z",[45,46,20,21,24],"box","cloud","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fstorage-for-edd-via-box.zip","2026-03-15T15:16:48.613Z",{"slug":50,"name":51,"version":39,"author":7,"author_profile":8,"description":52,"short_description":53,"active_installs":11,"downloaded":54,"rating":13,"num_ratings":55,"last_updated":56,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":57,"homepage":15,"download_link":59,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":48},"storage-for-edd-via-dropbox","Storage for EDD via Dropbox","\u003Cp>Storage for EDD via Dropbox is a powerful extension for Easy Digital Downloads that allows you to store and deliver your digital products using Dropbox cloud storage. This plugin provides seamless integration with Dropbox’s API, featuring OAuth2 authentication and secure temporary download links.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Dropbox Integration\u003C\u002Fstrong>: Store your digital products securely in Dropbox\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OAuth2 Authentication\u003C\u002Fstrong>: Secure and easy connection to your Dropbox account\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Temporary Download Links\u003C\u002Fstrong>: Generates secure 4-hour temporary links for downloads\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Easy File Management\u003C\u002Fstrong>: Upload files directly to Dropbox through WordPress admin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media Library Integration\u003C\u002Fstrong>: Browse and select files from your Dropbox within WordPress\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Folder Support\u003C\u002Fstrong>: Navigate and organize files in folders\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security First\u003C\u002Fstrong>: Built with WordPress security best practices\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer Friendly\u003C\u002Fstrong>: Clean, well-documented code with hooks and filters\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Create a Dropbox App at \u003Ca href=\"https:\u002F\u002Fwww.dropbox.com\u002Fdevelopers\u002Fapps\" rel=\"nofollow ugc\">Dropbox Developer Console\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Set OAuth Redirect URI to: \u003Ccode>https:\u002F\u002Fyour-site.com\u002Fdbxe-oauth-callback\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Go to Downloads > Settings > Extensions > Dropbox Storage\u003C\u002Fli>\n\u003Cli>Enter your App Key and App Secret\u003C\u002Fli>\n\u003Cli>Save settings and click “Connect to Dropbox”\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Ch4>Browsing and Selecting Files\u003C\u002Fh4>\n\u003Col>\n\u003Cli>When creating or editing a download in Easy Digital Downloads\u003C\u002Fli>\n\u003Cli>Click the “Browse Dropbox” button next to the file URL field\u003C\u002Fli>\n\u003Cli>Browse your Dropbox storage using the folder navigation\u003C\u002Fli>\n\u003Cli>Use the breadcrumb navigation bar to quickly jump to parent folders\u003C\u002Fli>\n\u003Cli>Use the search box in the header to filter files by name\u003C\u002Fli>\n\u003Cli>Click “Select” to use an existing file for your download\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Uploading New Files\u003C\u002Fh4>\n\u003Col>\n\u003Cli>In the Dropbox browser, click the “Upload” button in the header row\u003C\u002Fli>\n\u003Cli>The upload form will appear above the file list\u003C\u002Fli>\n\u003Cli>Choose your file and click “Upload”\u003C\u002Fli>\n\u003Cli>After a successful upload, the file URL will be automatically set with the Dropbox prefix\u003C\u002Fli>\n\u003Cli>Click the button again to hide the upload form\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to Dropbox API to manage files, create download links, and handle authentication.\u003C\u002Fp>\n\u003Cp>It sends the necessary authentication tokens and file requests to Dropbox servers. This happens when you browse your Dropbox files in the dashboard, upload files, or when a customer downloads a file.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service\u003C\u002Fstrong>: Dropbox API\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Used for\u003C\u002Fstrong>: Authentication, file browsing, uploading, and generating download links.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: OAuth tokens, file metadata, file content (during upload).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>URLs\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>\u003Ccode>https:\u002F\u002Fapi.dropboxapi.com\u003C\u002Fcode> (API calls)\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Fcontent.dropboxapi.com\u003C\u002Fcode> (File transfers)\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Fwww.dropbox.com\u003C\u002Fcode> (Authentication)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Legal\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.dropbox.com\u002Fterms\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.dropbox.com\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support and bug reports, please use the WordPress.org plugin support forum.\u003C\u002Fp>\n\u003Cp>If you find this plugin helpful, please consider leaving a review on WordPress.org.\u003C\u002Fp>\n\u003Ch3>Other Storage Providers\u003C\u002Fh3>\n\u003Cp>Looking for a different storage provider? Check out our other plugins:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-box\u002F\" rel=\"ugc\">Storage for EDD via Box\u003C\u002Fa> – Use Box for your digital product storage\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-onedrive\u002F\" rel=\"ugc\">Storage for EDD via OneDrive\u003C\u002Fa> – Use Microsoft OneDrive for your digital product storage\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-s3-compatible\u002F\" rel=\"ugc\">Storage for EDD via S3-Compatible\u003C\u002Fa> – Use S3-compatible services like MinIO, DigitalOcean Spaces, Linode, Wasabi, and more\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>This plugin requires authorization to access your Dropbox account for file storage and retrieval. It does not collect or store any personal data beyond the OAuth tokens needed to maintain the connection. All file storage and delivery is handled through Dropbox’s secure infrastructure.\u003C\u002Fp>\n","Enable secure cloud storage and delivery of your digital products through Dropbox for Easy Digital Downloads.",282,1,"2026-02-24T09:47:00.000Z",[46,58,20,21,24],"dropbox","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fstorage-for-edd-via-dropbox.1.1.0.zip",{"slug":61,"name":62,"version":39,"author":7,"author_profile":8,"description":63,"short_description":64,"active_installs":11,"downloaded":65,"rating":13,"num_ratings":55,"last_updated":66,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":67,"homepage":15,"download_link":69,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":48},"storage-for-edd-via-onedrive","Storage for EDD via OneDrive","\u003Cp>Storage for EDD via OneDrive is a powerful extension for Easy Digital Downloads that allows you to store and deliver your digital products using Microsoft OneDrive cloud storage. This plugin provides seamless integration with Microsoft Graph API, featuring OAuth2 authentication and secure download links.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>OneDrive Integration\u003C\u002Fstrong>: Store your digital products securely in Microsoft OneDrive\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OAuth2 Authentication\u003C\u002Fstrong>: Secure and easy connection to your Microsoft account\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Temporary Download Links\u003C\u002Fstrong>: Generates secure temporary download URLs via @microsoft.graph.downloadUrl\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Easy File Management\u003C\u002Fstrong>: Upload files directly to OneDrive through WordPress admin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media Library Integration\u003C\u002Fstrong>: Browse and select files from your OneDrive within WordPress\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Folder Support\u003C\u002Fstrong>: Navigate and organize files in folders\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security First\u003C\u002Fstrong>: Built with WordPress security best practices\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer Friendly\u003C\u002Fstrong>: Clean, well-documented code with hooks and filters\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Register an Azure AD Application at \u003Ca href=\"https:\u002F\u002Fportal.azure.com\u002F#blade\u002FMicrosoft_AAD_RegisteredApps\u002FApplicationsListBlade\" rel=\"nofollow ugc\">Azure App Registrations\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Add API permissions for Microsoft Graph (Files.Read, Files.ReadWrite, User.Read, offline_access)\u003C\u002Fli>\n\u003Cli>Set Redirect URI to: \u003Ccode>https:\u002F\u002Fyour-site.com\u002Fodse-oauth-callback\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Create a Client Secret and copy the value\u003C\u002Fli>\n\u003Cli>Go to Downloads > Settings > Extensions > OneDrive Storage\u003C\u002Fli>\n\u003Cli>Enter your Application (client) ID and Client Secret\u003C\u002Fli>\n\u003Cli>Save settings and click “Connect to OneDrive”\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Ch4>Browsing and Selecting Files\u003C\u002Fh4>\n\u003Col>\n\u003Cli>When creating or editing a download in Easy Digital Downloads\u003C\u002Fli>\n\u003Cli>Click the “Browse OneDrive” button next to the file URL field\u003C\u002Fli>\n\u003Cli>Browse your OneDrive storage using the folder navigation\u003C\u002Fli>\n\u003Cli>Use the breadcrumb navigation bar to quickly jump to parent folders\u003C\u002Fli>\n\u003Cli>Use the search box in the header to filter files by name\u003C\u002Fli>\n\u003Cli>Click “Select” to use an existing file for your download\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Uploading New Files\u003C\u002Fh4>\n\u003Col>\n\u003Cli>In the OneDrive browser, click the “Upload” button in the header row\u003C\u002Fli>\n\u003Cli>The upload form will appear above the file list\u003C\u002Fli>\n\u003Cli>Choose your file and click “Upload”\u003C\u002Fli>\n\u003Cli>After a successful upload, the file URL will be automatically set with the OneDrive prefix\u003C\u002Fli>\n\u003Cli>Click the button again to hide the upload form\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to Microsoft Graph API (OneDrive) to manage files, create download links, and handle authentication.\u003C\u002Fp>\n\u003Cp>It sends the necessary authentication tokens and file requests to Microsoft servers. This happens when you browse your OneDrive files in the dashboard, upload files, or when a customer downloads a file.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service\u003C\u002Fstrong>: Microsoft Graph API (OneDrive)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Used for\u003C\u002Fstrong>: Authentication, file browsing, uploading, and generating download links.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: OAuth tokens, file metadata, file content (during upload).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>URLs\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>\u003Ccode>https:\u002F\u002Fgraph.microsoft.com\u003C\u002Fcode> (API calls)\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Flogin.microsoftonline.com\u003C\u002Fcode> (Authentication)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Legal\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Flegal\u002Fterms-of-use\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fprivacy.microsoft.com\u002Fen-us\u002Fprivacystatement\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support and bug reports, please use the WordPress.org plugin support forum.\u003C\u002Fp>\n\u003Cp>If you find this plugin helpful, please consider leaving a review on WordPress.org.\u003C\u002Fp>\n\u003Ch3>Other Storage Providers\u003C\u002Fh3>\n\u003Cp>Looking for a different storage provider? Check out our other plugins:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-box\u002F\" rel=\"ugc\">Storage for EDD via Box\u003C\u002Fa> – Use Box for your digital product storage\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-dropbox\u002F\" rel=\"ugc\">Storage for EDD via Dropbox\u003C\u002Fa> – Use Dropbox for your digital product storage\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstorage-for-edd-via-s3-compatible\u002F\" rel=\"ugc\">Storage for EDD via S3-Compatible\u003C\u002Fa> – Use S3-compatible services like MinIO, DigitalOcean Spaces, Linode, Wasabi, and more\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>This plugin requires authorization to access your Microsoft OneDrive account for file storage and retrieval. It does not collect or store any personal data beyond the OAuth tokens needed to maintain the connection. All file storage and delivery is handled through Microsoft’s secure infrastructure.\u003C\u002Fp>\n","Enable secure cloud storage and delivery of your digital products through Microsoft OneDrive for Easy Digital Downloads.",175,"2026-02-24T09:48:00.000Z",[46,20,21,68,24],"onedrive","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fstorage-for-edd-via-onedrive.1.1.0.zip",{"slug":71,"name":72,"version":73,"author":74,"author_profile":75,"description":76,"short_description":77,"active_installs":78,"downloaded":79,"rating":33,"num_ratings":80,"last_updated":81,"tested_up_to":16,"requires_at_least":82,"requires_php":83,"tags":84,"homepage":88,"download_link":89,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":48},"advanced-media-offloader","Advanced Media Offloader","4.4.1","Masoud Golchin","https:\u002F\u002Fprofiles.wordpress.org\u002Fmasoudin\u002F","\u003Cp>\u003Cstrong>Advanced Media Offloader\u003C\u002Fstrong> helps you optimize your WordPress media handling by automatically uploading your media files to S3-compatible cloud storage services.\u003C\u002Fp>\n\u003Cp>Struggling with server space limitations? Want to improve your site’s performance by serving media through a CDN? This plugin handles the technical work of migrating your media to the cloud, rewriting URLs, and maintaining compatibility with your existing content.\u003C\u002Fp>\n\u003Ch4>Key Benefits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Reduce server storage requirements and costs\u003C\u002Fli>\n\u003Cli>Decrease server load when serving media files\u003C\u002Fli>\n\u003Cli>Improve global site loading speeds when combined with CDN services\u003C\u002Fli>\n\u003Cli>Maintain full compatibility with WordPress media functions\u003C\u002Fli>\n\u003Cli>No need to modify existing content – URLs are automatically rewritten\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Supported Cloud Providers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Amazon S3\u003C\u002Fstrong> – The industry standard object storage service\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cloudflare R2\u003C\u002Fstrong> – S3-compatible storage with zero egress fees\u003C\u002Fli>\n\u003Cli>\u003Cstrong>DigitalOcean Spaces\u003C\u002Fstrong> – Simple object storage from DigitalOcean\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Backblaze B2\u003C\u002Fstrong> – Affordable S3-compatible storage with predictable pricing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Wasabi\u003C\u002Fstrong> – Hot cloud storage with predictable pricing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>MinIO\u003C\u002Fstrong> – Any S3-compatible storage (MinIO, OVHcloud Object Storage, Scaleway, Linode, Vultr, IBM COS, and more)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Not sure which provider to choose? Check our \u003Ca href=\"https:\u002F\u002Fwpfitter.com\u002Fblog\u002Fbest-cloud-storage-for-wordpress-media-pricing-comparison\u002F?utm_source=wp-plugin&utm_medium=readme&utm_campaign=advanced-media-offloader&utm_content=pricing-comparison\" rel=\"nofollow ugc\">cloud storage pricing comparison\u003C\u002Fa> for real-world cost breakdowns.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Automatic Offloading\u003C\u002Fstrong> – New media uploads are automatically sent to your cloud storage\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart Policies\u003C\u002Fstrong> – Create advanced rules to control exactly which files are offloaded and when, giving you granular control over your storage. (\u003Ca href=\"https:\u002F\u002Fwpfitter.com\u002Fblog\u002Fimplementing-smart-retention-policies-with-advanced-media-offloader\u002F?utm_source=wp-plugin&utm_medium=readme&utm_campaign=advanced-media-offloader&utm_content=smart-policies\" rel=\"nofollow ugc\">Learn more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk Migration & WP CLI\u003C\u002Fstrong> – Easily move existing media to the cloud with powerful command-line support for bulk operations and automation (\u003Ca href=\"https:\u002F\u002Fwpfitter.com\u002Fblog\u002Fadvmo-bulk-offload-with-wp-cli?utm_source=wp-plugin&utm_medium=readme&utm_campaign=advanced-media-offloader&utm_content=bulk-offload-cli\" rel=\"nofollow ugc\">Learn more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Thumbnail Regeneration Compatibility\u003C\u002Fstrong> – Compatible with WP-CLI \u003Ccode>wp media regenerate\u003C\u002Fcode> command and the Regenerate Thumbnails plugin. Regenerated thumbnails automatically offload to cloud storage. Note: Not compatible with Full Cloud Migration retention policy.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart URL Rewriting\u003C\u002Fstrong> – All media URLs are automatically rewritten to serve from cloud storage\u003C\u002Fli>\n\u003Cli>\u003Cstrong>File Versioning\u003C\u002Fstrong> – Add unique timestamps to media paths to prevent caching issues\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible Retention\u003C\u002Fstrong> – Choose to keep local copies or remove them after successful offloading\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mirror Deletion\u003C\u002Fstrong> – Optionally remove files from cloud storage when deleted from WordPress\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Paths\u003C\u002Fstrong> – Configure custom path prefixes in your cloud storage\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Image Optimizer Compatibility\u003C\u002Fstrong> – Works with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwebp-uploads\u002F\" rel=\"ugc\">Modern Image Formats\u003C\u002Fa> (recommended), Imagify, and EWWW Image Optimizer. Optimized WebP and AVIF files are automatically offloaded alongside originals. (\u003Ca href=\"https:\u002F\u002Fwpfitter.com\u002Fblog\u002Fewww-imagify-support-added-to-advanced-media-offloader\u002F?utm_source=wp-plugin&utm_medium=readme&utm_campaign=advanced-media-offloader&utm_content=image-optimizer-compatibility\" rel=\"nofollow ugc\">Learn more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer-Friendly\u003C\u002Fstrong> – Extensive action and filter hooks for extending functionality (\u003Ca href=\"https:\u002F\u002Fwpfitter.com\u002Fdocuments\u002Fadvanced-media-offloader\u002Fdevelopment-hooks\u002F?utm_source=wp-plugin&utm_medium=readme&utm_campaign=advanced-media-offloader&utm_content=developer-hooks\" rel=\"nofollow ugc\">View Documentation\u003C\u002Fa>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Developer Documentation\u003C\u002Fh4>\n\u003Cp>For developers looking to extend or customize the plugin behavior, we provide comprehensive documentation for all available hooks:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwpfitter.com\u002Fdocuments\u002Fadvanced-media-offloader\u002Fdevelopment-hooks\u002F?utm_source=wp-plugin&utm_medium=readme&utm_campaign=advanced-media-offloader&utm_content=developer-hooks\" rel=\"nofollow ugc\">View Developer Hooks Documentation \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Quick example – skip offloading files larger than 5MB:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter('advmo_should_offload_attachment', function($should_offload, $attachment_id) {\n    $file = get_attached_file($attachment_id);\n    if ($file && filesize($file) > 5 * 1024 * 1024) {\n        return false;\n    }\n    return $should_offload;\n}, 10, 2);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Cp>For security, cloud provider credentials are stored in your \u003Ccode>wp-config.php\u003C\u002Fcode> file rather than the database.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> Domain and endpoint URLs will automatically be prefixed with \u003Ccode>https:\u002F\u002F\u003C\u002Fcode> if you don’t include it, but we recommend always including the full URL for clarity.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fr2\u002F\" rel=\"nofollow ugc\">Cloudflare R2\u003C\u002Fa> Configuration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    define('ADVMO_CLOUDFLARE_R2_KEY', 'your-access-key');\n    define('ADVMO_CLOUDFLARE_R2_SECRET', 'your-secret-key');\n    define('ADVMO_CLOUDFLARE_R2_BUCKET', 'your-bucket-name');\n    define('ADVMO_CLOUDFLARE_R2_DOMAIN', 'your-domain-url');\n    define('ADVMO_CLOUDFLARE_R2_ENDPOINT', 'your-endpoint-url');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.digitalocean.com\u002Fproducts\u002Fspaces\" rel=\"nofollow ugc\">DigitalOcean Spaces\u003C\u002Fa> Configuration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    define('ADVMO_DOS_KEY', 'your-access-key');\n    define('ADVMO_DOS_SECRET', 'your-secret-key');\n    define('ADVMO_DOS_BUCKET', 'your-bucket-name');\n    define('ADVMO_DOS_DOMAIN', 'your-domain-url');\n    define('ADVMO_DOS_ENDPOINT', 'your-endpoint-url');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fmin.io\u002Fdocs\u002Fminio\u002Flinux\u002Fadministration\u002Fidentity-access-management\u002Fminio-user-management.html\" rel=\"nofollow ugc\">MinIO\u003C\u002Fa> Configuration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Use this for any storage that supports the S3 API via a custom endpoint (e.g., MinIO, OVHcloud Object Storage, Scaleway, Linode, Vultr, IBM COS). Select this if your provider isn’t listed separately.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    define('ADVMO_MINIO_KEY', 'your-access-key');\n    define('ADVMO_MINIO_SECRET', 'your-secret-key');\n    define('ADVMO_MINIO_BUCKET', 'your-bucket-name');\n    define('ADVMO_MINIO_DOMAIN', 'your-domain-url');\n    define('ADVMO_MINIO_ENDPOINT', 'your-endpoint-url');\n    define('ADVMO_MINIO_PATH_STYLE_ENDPOINT', false); \u002F\u002F Optional. Set to true if your MinIO server requires path-style URLs (most self-hosted MinIO setups). Default is false.\n    define('ADVMO_MINIO_REGION', 'your-bucket-region'); \u002F\u002F Optional. Set your MinIO bucket region if needed. Default is 'us-east-1'.\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fs3\u002F\" rel=\"nofollow ugc\">Amazon S3\u003C\u002Fa> Configuration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    define('ADVMO_AWS_KEY', 'your-access-key');\n    define('ADVMO_AWS_SECRET', 'your-secret-key');\n    define('ADVMO_AWS_BUCKET', 'your-bucket-name');\n    define('ADVMO_AWS_REGION', 'your-bucket-region');\n    define('ADVMO_AWS_DOMAIN', 'your-domain-url');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.backblaze.com\u002Fapidocs\u002Fintroduction-to-the-s3-compatible-api\" rel=\"nofollow ugc\">Backblaze B2\u003C\u002Fa> Configuration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    define('ADVMO_BACKBLAZE_B2_KEY', 'your-application-key-id');\n    define('ADVMO_BACKBLAZE_B2_SECRET', 'your-application-key');\n    define('ADVMO_BACKBLAZE_B2_BUCKET', 'your-bucket-name');\n    define('ADVMO_BACKBLAZE_B2_REGION', 'your-bucket-region');\n    define('ADVMO_BACKBLAZE_B2_DOMAIN', 'your-domain-url');\n    define('ADVMO_BACKBLAZE_B2_ENDPOINT', 'your-endpoint-url');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdocs.wasabi.com\u002Fdocs\u002Fcreating-a-new-access-key\" rel=\"nofollow ugc\">Wasabi\u003C\u002Fa> Configuration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    define('ADVMO_WASABI_KEY', 'your-access-key');\n    define('ADVMO_WASABI_SECRET', 'your-secret-key');\n    define('ADVMO_WASABI_BUCKET', 'your-bucket-name');\n    define('ADVMO_WASABI_REGION', 'your-bucket-region');\n    define('ADVMO_WASABI_DOMAIN', 'your-domain-url');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Using the S3 PHP SDK\u003C\u002Fh3>\n\u003Cp>The Advanced Media Offloader utilizes the AWS SDK for PHP to interact with S3-compatible cloud storage. This powerful SDK provides an easy-to-use API for managing your cloud storage operations, including file uploads, downloads, and more. The SDK is maintained by Amazon Web Services, ensuring high compatibility and performance with S3 services.\u003C\u002Fp>\n\u003Cp>For more information about the AWS SDK for PHP, visit:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fsdk-for-php\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Faws.amazon.com\u002Fsdk-for-php\u002F\u003C\u002Fa>\u003C\u002Fp>\n","Save server space & speed up your site by automatically offloading media to Amazon S3, Cloudflare R2 & more.",3000,35528,42,"2026-03-11T11:11:00.000Z","5.6","8.1",[85,86,87,22,24],"cloudflare","media-library","offload","https:\u002F\u002Fwpfitter.com\u002Fplugins\u002Fadvanced-media-offloader\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadvanced-media-offloader.4.4.1.zip",{"slug":91,"name":92,"version":39,"author":93,"author_profile":94,"description":95,"short_description":96,"active_installs":97,"downloaded":98,"rating":13,"num_ratings":99,"last_updated":100,"tested_up_to":16,"requires_at_least":101,"requires_php":82,"tags":102,"homepage":106,"download_link":107,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":48},"easy-digital-downloads-free-link","Easy Digital Downloads Free Link","webaware","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebaware\u002F","\u003Cp>Replace the add-to-cart button in \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feasy-digital-downloads\u002F\" rel=\"ugc\">Easy Digital Downloads\u003C\u002Fa> with a direct link to the download file when the product is free and has only one file. This only works when the file is an external link to a web-accessible file.\u003C\u002Fp>\n\u003Cp>For archive pages on the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fthemes\u002Fshop-front\" rel=\"ugc\">Shop Front theme\u003C\u002Fa>, the cart icon is replaced with a download icon and direct download link.\u003C\u002Fp>\n\u003Cp>Want to see it in action? Check out the \u003Ca href=\"https:\u002F\u002Fshop.webaware.com.au\u002F\" rel=\"nofollow ugc\">WebAware shop\u003C\u002Fa> — it’s running this plugin.\u003C\u002Fp>\n\u003Ch3>Translations\u003C\u002Fh3>\n\u003Cp>Many thanks to the generous efforts of our translators:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Albanian (sq) — \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fsq\u002Fdefault\u002Fwp-plugins\u002Feasy-digital-downloads-free-link\" rel=\"nofollow ugc\">the Albanian translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Chinese (zh_CN) — \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fzh-cn\u002Fdefault\u002Fwp-plugins\u002Feasy-digital-downloads-free-link\" rel=\"nofollow ugc\">the Chinese (simplified) translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>English (en_CA) — \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fen-ca\u002Fdefault\u002Fwp-plugins\u002Feasy-digital-downloads-free-link\" rel=\"nofollow ugc\">the English (Canadian) translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>English (en_GB) — \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fen-gb\u002Fdefault\u002Fwp-plugins\u002Feasy-digital-downloads-free-link\" rel=\"nofollow ugc\">the English (British) translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>French (fr_FR) — \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Ffr\u002Fdefault\u002Fwp-plugins\u002Feasy-digital-downloads-free-link\" rel=\"nofollow ugc\">the French translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Hungarian (hu_HU) — \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Ftheguitarlesson\u002F\" rel=\"nofollow ugc\">Tom Vicces\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Japanese (ja) — \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fja\u002Fdefault\u002Fwp-plugins\u002Feasy-digital-downloads-free-link\" rel=\"nofollow ugc\">the Japanese translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Norwegian: Bokmål (nb_NO) — \u003Ca href=\"http:\u002F\u002Fwww.neonnero.com\u002F\" rel=\"nofollow ugc\">neonnero\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Norwegian: Nynorsk (nn_NO) — \u003Ca href=\"http:\u002F\u002Fwww.neonnero.com\u002F\" rel=\"nofollow ugc\">neonnero\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you’d like to help out by translating this plugin, please \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Feasy-digital-downloads-free-link\" rel=\"nofollow ugc\">sign up for an account and dig in\u003C\u002Fa>.\u003C\u002Fp>\n","replace EDD add-to-cart button with download link when product is free",1000,36405,5,"2025-12-14T04:00:00.000Z","4.0",[103,104,105,20,21],"digital-downloads","download","downloads","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feasy-digital-downloads-free-link\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-digital-downloads-free-link.1.1.0.zip",{"attackSurface":109,"codeSignals":172,"taintFlows":184,"riskAssessment":263,"analyzedAt":272},{"hooks":110,"ajaxHandlers":158,"restRoutes":169,"shortcodes":170,"cronEvents":171,"entryPointCount":14,"unprotectedCount":11},[111,117,121,126,131,136,140,145,148,153],{"type":112,"name":113,"callback":114,"file":115,"line":116},"filter","edd_settings_extensions","addSettings","includes\\class-admin-settings.php",16,{"type":112,"name":118,"callback":119,"file":115,"line":120},"edd_settings_sections_extensions","registerS3CSSection",17,{"type":122,"name":123,"callback":124,"file":115,"line":125},"action","admin_enqueue_scripts","enqueueAdminScripts",18,{"type":122,"name":127,"callback":128,"file":129,"line":130},"admin_notices","showConfigurationNotice","includes\\class-main-plugin.php",20,{"type":112,"name":132,"callback":133,"priority":134,"file":129,"line":135},"edd_requested_file","generateUrl",11,29,{"type":122,"name":123,"callback":137,"file":138,"line":139},"enqueueStyles","includes\\class-media-library.php",23,{"type":122,"name":141,"callback":142,"priority":143,"file":138,"line":144},"edd_download_file_table_row","renderBrowseButton",10,26,{"type":122,"name":146,"callback":147,"file":138,"line":135},"admin_footer","printAdminScripts",{"type":122,"name":149,"callback":150,"file":151,"line":152},"admin_post_s3cs_edd_upload","performFileUpload","includes\\class-s3-uploader.php",22,{"type":122,"name":154,"callback":155,"file":156,"line":157},"plugins_loaded","closure","storage-for-edd-via-s3-compatible.php",47,[159,165],{"action":160,"nopriv":161,"callback":162,"hasNonce":163,"hasCapCheck":163,"file":138,"line":164},"s3cs_edd_get_library",false,"ajaxGetLibrary",true,32,{"action":166,"nopriv":161,"callback":167,"hasNonce":163,"hasCapCheck":163,"file":151,"line":168},"s3cs_edd_ajax_upload","ajaxUpload",25,[],[],[],{"dangerousFunctions":173,"sqlUsage":174,"outputEscaping":176,"fileOperations":55,"externalRequests":11,"nonceChecks":179,"capabilityChecks":179,"bundledLibraries":180},[],{"prepared":11,"raw":11,"locations":175},[],{"escaped":177,"rawEcho":11,"locations":178},52,[],3,[181],{"name":182,"version":26,"knownCves":183},"Guzzle",[],[185,208,225,241,252],{"entryPoint":186,"graph":187,"unsanitizedCount":55,"severity":207},"ajaxGetLibrary (includes\\class-media-library.php:38)",{"nodes":188,"edges":204},[189,194,198],{"id":190,"type":191,"label":192,"file":138,"line":193},"n0","source","$_REQUEST",61,{"id":195,"type":196,"label":197,"file":138,"line":193},"n1","transform","→ renderLibraryContent()",{"id":199,"type":200,"label":201,"file":138,"line":202,"wp_function":203},"n2","sink","echo() [XSS]",232,"echo",[205,206],{"from":190,"to":195,"sanitized":161},{"from":195,"to":199,"sanitized":161},"medium",{"entryPoint":209,"graph":210,"unsanitizedCount":55,"severity":207},"\u003Cclass-media-library> (includes\\class-media-library.php:0)",{"nodes":211,"edges":221},[212,214,216,217,219],{"id":190,"type":191,"label":213,"file":138,"line":157},"$_REQUEST (x2)",{"id":195,"type":200,"label":201,"file":138,"line":215,"wp_function":203},146,{"id":199,"type":191,"label":192,"file":138,"line":193},{"id":218,"type":196,"label":197,"file":138,"line":193},"n3",{"id":220,"type":200,"label":201,"file":138,"line":202,"wp_function":203},"n4",[222,223,224],{"from":190,"to":195,"sanitized":163},{"from":199,"to":218,"sanitized":161},{"from":218,"to":220,"sanitized":161},{"entryPoint":226,"graph":227,"unsanitizedCount":55,"severity":207},"performFileUpload (includes\\class-s3-uploader.php:31)",{"nodes":228,"edges":238},[229,232,234],{"id":190,"type":191,"label":230,"file":151,"line":231},"$_FILES['s3cs_edd_file']",59,{"id":195,"type":196,"label":233,"file":151,"line":231},"→ processUpload()",{"id":199,"type":200,"label":235,"file":151,"line":236,"wp_function":237},"fopen() [File Access]",225,"fopen",[239,240],{"from":190,"to":195,"sanitized":161},{"from":195,"to":199,"sanitized":161},{"entryPoint":242,"graph":243,"unsanitizedCount":55,"severity":207},"ajaxUpload (includes\\class-s3-uploader.php:85)",{"nodes":244,"edges":249},[245,247,248],{"id":190,"type":191,"label":230,"file":151,"line":246},110,{"id":195,"type":196,"label":233,"file":151,"line":246},{"id":199,"type":200,"label":235,"file":151,"line":236,"wp_function":237},[250,251],{"from":190,"to":195,"sanitized":161},{"from":195,"to":199,"sanitized":161},{"entryPoint":253,"graph":254,"unsanitizedCount":14,"severity":207},"\u003Cclass-s3-uploader> (includes\\class-s3-uploader.php:0)",{"nodes":255,"edges":260},[256,258,259],{"id":190,"type":191,"label":257,"file":151,"line":231},"$_FILES['s3cs_edd_file'] (x2)",{"id":195,"type":196,"label":233,"file":151,"line":231},{"id":199,"type":200,"label":235,"file":151,"line":236,"wp_function":237},[261,262],{"from":190,"to":195,"sanitized":161},{"from":195,"to":199,"sanitized":161},{"summary":264,"deductions":265},"The \"storage-for-edd-via-s3-compatible\" plugin version 1.2.0 exhibits a generally strong security posture based on the provided static analysis.  All identified entry points (AJAX handlers) have authentication checks, and all database queries utilize prepared statements. Furthermore, output escaping is consistently applied, and there are no recorded vulnerabilities (CVEs).  The use of nonces and capability checks on the AJAX endpoints is also a positive indicator of secure development practices.\n\nDespite the positive indicators, there are a few areas that warrant attention. The taint analysis revealed five flows with unsanitized paths. While these did not result in critical or high-severity issues in this analysis, unsanitized paths are a potential gateway for various injection vulnerabilities if not handled with extreme care and robust validation on the server-side, especially when dealing with external data. The presence of file operations, though only one is noted, can also introduce risks if not properly secured against path traversal or unauthorized access. The bundled Guzzle library should also be monitored for known vulnerabilities, though none are indicated here.\n\nOverall, the plugin demonstrates a good foundation of security. The absence of a vulnerability history is a significant strength. The primary concern lies with the identified unsanitized paths, which, while not currently exploitable according to the data, represent a latent risk that could be exploited if further context or additional vulnerabilities were present. The strengths in authentication, prepared statements, and output escaping significantly outweigh the weaknesses, making the overall risk moderate, but with room for improvement in path sanitization.",[266,268,270],{"reason":267,"points":143},"5 flows with unsanitized paths",{"reason":269,"points":179},"File operations present",{"reason":271,"points":179},"Bundled library (Guzzle) needs monitoring","2026-03-17T05:44:32.908Z",{"wat":274,"direct":283},{"assetPaths":275,"generatorPatterns":278,"scriptPaths":279,"versionParams":280},[276,277],"\u002Fwp-content\u002Fplugins\u002Fstorage-for-edd-via-s3-compatible\u002Fassets\u002Fcss\u002Fadmin-settings.css","\u002Fwp-content\u002Fplugins\u002Fstorage-for-edd-via-s3-compatible\u002Fassets\u002Fjs\u002Fadmin-settings.js",[],[277],[281,282],"storage-for-edd-via-s3-compatible\u002Fassets\u002Fcss\u002Fadmin-settings.css?ver=","storage-for-edd-via-s3-compatible\u002Fassets\u002Fjs\u002Fadmin-settings.js?ver=",{"cssClasses":284,"htmlComments":287,"htmlAttributes":288,"restEndpoints":293,"jsGlobals":294,"shortcodeOutput":297},[285,286],"edd-s3cs-credential","edd-s3cs-bucket-disabled",[],[289,290,291,292],"data-edd-s3cs-endpoint","data-edd-s3cs-access-key","data-edd-s3cs-secret-key","data-edd-s3cs-bucket",[],[295,296],"S3CS_EDD_S3_Config","S3CS_EDD_S3_Client",[]]