{"id":287850,"date":"2026-03-23T21:09:30","date_gmt":"2026-03-23T21:09:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/r2-storage-manager-for-cloudflare\/"},"modified":"2026-04-06T22:55:00","modified_gmt":"2026-04-06T22:55:00","slug":"r2-storage-manager-for-cloudflare","status":"publish","type":"plugin","link":"https:\/\/uz.wordpress.org\/plugins\/r2-storage-manager-for-cloudflare\/","author":23462503,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.3","stable_tag":"trunk","tested":"6.9.4","requires":"","requires_php":"7.4","requires_plugins":null,"header_name":"R2 Storage Manager for Cloudflare","header_author":"R2Suites","header_description":"Connect WordPress to Cloudflare R2. Upload, manage files, and securely download them using temporary signed URLs (Lite Version).","assets_banners_color":"f9734b","last_updated":"2026-04-06 22:55:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/r2-storage-manager-for-cloudflare\/","header_author_uri":"https:\/\/www.r2suites.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":158,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"r2suites","date":"2026-03-23 21:20:02"},"1.0.2":{"tag":"1.0.2","author":"r2suites","date":"2026-04-05 14:58:12"},"103":{"tag":"103","author":"r2suites","date":"2026-04-06 22:56:26"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3489447,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3489447,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3489447,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3489447,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"cr2sm\/download":{"name":"cr2sm\/download","title":"R2 Download"}},"tagged_versions":null,"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3489447,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3489447,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3489447,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Dashboard overview.","2":"Settings page.","3":"Upload interface.","4":"Gutenberg block editor (R2 Download block)."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[10725,255106,5887,217,44220],"plugin_category":[59],"plugin_contributors":[258474],"plugin_business_model":[],"class_list":["post-287850","plugin","type-plugin","status-publish","hentry","plugin_tags-cloud-storage","plugin_tags-cloudflare-r2","plugin_tags-file-upload","plugin_tags-s3","plugin_tags-secure-download","plugin_category-utilities-and-tools","plugin_contributors-r2suites","plugin_committers-r2suites"],"banners":{"banner":"https:\/\/ps.w.org\/r2-storage-manager-for-cloudflare\/assets\/banner-772x250.png?rev=3489447","banner_2x":"https:\/\/ps.w.org\/r2-storage-manager-for-cloudflare\/assets\/banner-1544x500.png?rev=3489447","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/r2-storage-manager-for-cloudflare\/assets\/icon-128x128.png?rev=3489447","icon_2x":"https:\/\/ps.w.org\/r2-storage-manager-for-cloudflare\/assets\/icon-256x256.png?rev=3489447","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/r2-storage-manager-for-cloudflare\/assets\/screenshot-1.png?rev=3489447","caption":"Dashboard overview."},{"src":"https:\/\/ps.w.org\/r2-storage-manager-for-cloudflare\/assets\/screenshot-2.png?rev=3489447","caption":"Settings page."},{"src":"https:\/\/ps.w.org\/r2-storage-manager-for-cloudflare\/assets\/screenshot-3.png?rev=3489447","caption":"Upload interface."}],"raw_content":"<!--section=description-->\n<p>R2 Storage Manager Lite enables restricted file management between WordPress and Cloudflare R2 using its S3-compatible API.<\/p>\n\n<p>Upload files to your R2 bucket, browse stored objects, and generate expiring signed download links \u2014 all from your WordPress dashboard.<\/p>\n\n<p>Unlike traditional storage solutions, this plugin ensures that your files remain private and are only accessible through controlled, time-limited URLs.<\/p>\n\n<h3>Key Features (Lite)<\/h3>\n\n<ul>\n<li><strong>Direct Upload to R2<\/strong> \u2013 Securely upload files from WordPress to Cloudflare R2.<\/li>\n<li><strong>Secure Downloads via REST API<\/strong> \u2013 Generate expiring signed URLs using a hardened REST endpoint.<\/li>\n<li><strong>Private File Delivery<\/strong> \u2013 Files are not publicly accessible and are delivered via signed URLs.<\/li>\n<li><strong>Configurable Expiration<\/strong> \u2013 Set custom expiration times for download links.<\/li>\n<li><strong>Basic File Browser<\/strong> \u2013 View and manage stored files from the admin panel.<\/li>\n<li><strong>S3-Compatible API<\/strong> \u2013 Fully compatible with Cloudflare R2 infrastructure.<\/li>\n<\/ul>\n\n<h3>Use Cases<\/h3>\n\n<ul>\n<li>Deliver private digital files securely<\/li>\n<li>Share time-limited download links<\/li>\n<li>Protect premium content<\/li>\n<li>Replace insecure direct file URLs<\/li>\n<li>Manage external storage outside WordPress media<\/li>\n<\/ul>\n\n<h3>Pro Version (Optional)<\/h3>\n\n<p>Upgrade to unlock advanced capabilities:<\/p>\n\n<ul>\n<li>Unlimited uploads (no server limits)<\/li>\n<li>Multipart upload for large files<\/li>\n<li>Drag &amp; drop interface<\/li>\n<li>Advanced file manager with folders<\/li>\n<li>Download tracking &amp; analytics<\/li>\n<li>User quotas and restrictions<\/li>\n<li>Advanced security (IP, referer, geo restrictions)<\/li>\n<li>Webhooks &amp; automation tools<\/li>\n<\/ul>\n\n<p>More information: https:\/\/www.r2suites.com\/products\/wordpress\/cloudflare-r2-storage-manager-pro<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to Cloudflare R2 Object Storage.<\/p>\n\n<p>Service provider: Cloudflare, Inc.<br \/>\nService URL: https:\/\/www.cloudflare.com\/<br \/>\nPrivacy Policy: https:\/\/www.cloudflare.com\/privacypolicy\/<\/p>\n\n<p>Purpose:\nStorage and secure delivery of files via S3-compatible API.<\/p>\n\n<p>Data sent:\n* Access Key ID\n* Secret Access Key\n* Bucket name\n* File upload and retrieval requests<\/p>\n\n<p>Data is only transmitted when explicitly configured and used by the administrator.<\/p>\n\n<h3>Gutenberg Block<\/h3>\n\n<p>The plugin includes a built-in \"R2 Download\" block. You can insert a download button directly in the WordPress block editor without using shortcodes.<\/p>\n\n<p>Simply search for \"R2 Download\" in the block editor and configure the file key and label.<\/p>\n\n<h3>Shortcodes<\/h3>\n\n<p>Use the shortcode to generate a secure download button with restricted access:<\/p>\n\n<p>[cr2sm_download file=\"lite\/file.pdf\" label=\"Download\"]<\/p>\n\n<p>Files are delivered through time-limited signed URLs and are not publicly accessible.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/r2-storage-manager-for-cloudflare<\/code> or install via WordPress.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>R2 Storage Lite \u2192 Settings<\/strong>.<\/li>\n<li>Enter:\n\n<ul>\n<li>Endpoint  <\/li>\n<li>Access Key  <\/li>\n<li>Secret Key  <\/li>\n<li>Bucket Name<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20offload%20the%20wordpress%20media%20library%3F\"><h3>Does this plugin offload the WordPress Media Library?<\/h3><\/dt>\n<dd><p>No. Files are managed independently from the WordPress Media Library.<\/p><\/dd>\n<dt id=\"are%20files%20publicly%20accessible%3F\"><h3>Are files publicly accessible?<\/h3><\/dt>\n<dd><p>No. Files are delivered through signed URLs and are not publicly exposed.<\/p><\/dd>\n<dt id=\"can%20i%20control%20download%20access%3F\"><h3>Can I control download access?<\/h3><\/dt>\n<dd><p>Yes. You can enable login restrictions and control URL expiration.<\/p><\/dd>\n<dt id=\"is%20cloudflare%20r2%20required%3F\"><h3>Is Cloudflare R2 required?<\/h3><\/dt>\n<dd><p>Yes. You must have a Cloudflare account and an R2 bucket.<\/p><\/dd>\n<dt id=\"are%20credentials%20secure%3F\"><h3>Are credentials secure?<\/h3><\/dt>\n<dd><p>Yes. Credentials are stored using WordPress options and used only for API communication with R2.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20to%20third%20parties%3F\"><h3>Does the plugin send data to third parties?<\/h3><\/dt>\n<dd><p>No. Only Cloudflare R2 is used. No tracking or analytics is included.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20gutenberg%20blocks%3F\"><h3>Does the plugin support Gutenberg blocks?<\/h3><\/dt>\n<dd><p>Yes. You can use the built-in \"R2 Download\" block directly in the WordPress editor without using shortcodes.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Hardened file manager table for better stability and responsiveness.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added R2 Download Gutenberg block (Shortcode wrapper).<\/li>\n<li>Hardened block rendering logic with type-safety and sanitization.<\/li>\n<li>Refined Shortcodes admin view documentation and UI.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security hardening and compliance improvements<\/li>\n<li>Improved nonce validation for admin actions<\/li>\n<li>Migrated download system to REST API<\/li>\n<li>Strengthened file upload validation<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Connect WordPress to Cloudflare R2 and securely upload, manage, and deliver private files using expiring signed download links.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/287850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=287850"}],"author":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/r2suites"}],"wp:attachment":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=287850"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=287850"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=287850"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=287850"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=287850"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=287850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}