{"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-05-22T15:44:14","modified_gmt":"2026-05-22T15:44:14","slug":"r2-storage-manager-for-cloudflare","status":"publish","type":"plugin","link":"https:\/\/pt-ao.wordpress.org\/plugins\/r2-storage-manager-for-cloudflare\/","author":23462503,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.0","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-05-22 15:44:14","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":10,"downloads":458,"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"},"1.0.3":{"tag":"1.0.3","author":"r2suites","date":"2026-05-19 16:14:26"},"1.0.4":{"tag":"1.0.4","author":"r2suites","date":"2026-05-19 16:14:26"},"1.0.5":{"tag":"1.0.5","author":"r2suites","date":"2026-05-22 15:44:14"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3489447,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3489447,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3489447,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3489447,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"cr2sm\/download":{"name":"cr2sm\/download","title":"R2 Download"}},"tagged_versions":["1.0.1","1.0.2","1.0.3","1.0.4","1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3489447,"resolution":"1","location":"assets","locale":"","width":1676,"height":876},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3489447,"resolution":"2","location":"assets","locale":"","width":1669,"height":805},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3489447,"resolution":"3","location":"assets","locale":"","width":1675,"height":781}},"screenshots":{"1":"Dashboard overview.","2":"Settings page.","3":"Upload interface.","4":"Gutenberg block editor (R2 Download block)."}},"plugin_section":[],"plugin_tags":[255106,263557,22336,44220,263558],"plugin_category":[59],"plugin_contributors":[258474],"plugin_business_model":[],"class_list":["post-287850","plugin","type-plugin","status-publish","hentry","plugin_tags-cloudflare-r2","plugin_tags-document-sync","plugin_tags-private-files","plugin_tags-secure-download","plugin_tags-signed-urls","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>Secure Document Sync<\/strong> \u2013 Synchronize documents and digital assets from WordPress to Cloudflare R2 without altering frontend media URLs.<\/li>\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 for documents and digital assets<\/li>\n<\/ul>\n\n<h3>Pro Version (Optional)<\/h3>\n\n<p>Upgrade to unlock advanced capabilities:<\/p>\n\n<ul>\n<li>High-capacity multipart uploads for very 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>Architectural Policy &amp; Limitations<\/h3>\n\n<p><strong>CR2SM Lite is a Secure File Sync tool for documents, zip files, and digital products. It is NOT an image CDN or frontend acceleration plugin.<\/strong><\/p>\n\n<p>To guarantee architectural stability and prevent unexpected CDN abuse, this plugin enforces a strict <strong>No-URL-Rewrite Policy<\/strong>:\n* It MUST NOT filter <code>wp_get_attachment_url<\/code>.\n* It MUST NOT rewrite <code>srcset<\/code> attributes.\n* It MUST NOT replace native attachment URLs on your frontend.\n* It MUST NOT alter frontend delivery or inject CDN URLs.<\/p>\n\n<p>This plugin is exclusively designed for secure backend synchronization of documents and digital assets.<\/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%20wordpress%20media%3F\"><h3>Does this plugin offload WordPress media?<\/h3><\/dt>\n<dd><p>No. CR2SM Lite performs secure document synchronization only.<\/p>\n\n<p>Files are copied to Cloudflare R2 while local WordPress files remain untouched.<\/p>\n\n<p>The plugin does not:\n- replace attachment URLs\n- rewrite srcset attributes\n- function as an image CDN\n- remove local WordPress uploads<\/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.5<\/h4>\n\n<ul>\n<li>Minor stability improvements and code optimization.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added secure Document Sync support for WordPress documents and digital assets.<\/li>\n<li>Enforced strict no-CDN and no-rewrite architectural boundaries.<\/li>\n<li>Security and UX hardening for shared hosting environments.<\/li>\n<\/ul>\n\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":"Securely synchronize and deliver private documents and digital files with Cloudflare R2 using expiring signed URLs.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/287850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=287850"}],"author":[{"embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/r2suites"}],"wp:attachment":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=287850"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=287850"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=287850"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=287850"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=287850"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=287850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}