{"id":264585,"date":"2025-12-03T08:33:53","date_gmt":"2025-12-03T08:33:53","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/content-sentinel\/"},"modified":"2025-12-04T09:26:58","modified_gmt":"2025-12-04T09:26:58","slug":"content-sentinel","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/content-sentinel\/","author":23410473,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0","stable_tag":"1.0","tested":"6.8.5","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Content Sentinel: Secure Downloads","header_author":"contentsentinel","header_description":"Securely download your S3 Files (videos, mp3s, pdfs, etc) via short-lived, presigned URLs. No AWS SDK required.","assets_banners_color":"a3afb6","last_updated":"2025-12-04 09:26:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":274,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"contentsentinel","date":"2025-12-04 09:26:58"}},"upgrade_notice":{"1.0":"<p>Initial release of Content Sentinel. Install and configure your S3 credentials to start securing your files.<\/p>"},"ratings":[],"assets_icons":{"icon-160x160.png":{"filename":"icon-160x160.png","revision":3409604,"resolution":"160x160","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3409129,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3409604,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3409604,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page with AWS Quick Setup guide","2":"Manual configuration options","3":"S3 Browser interface (Pro feature)","4":"Access Control settings (Pro feature)","5":"Download logs (Pro feature)","6":"Shortcode usage example"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[10725,18193,251663,217,142836],"plugin_category":[59],"plugin_contributors":[251592],"plugin_business_model":[],"class_list":["post-264585","plugin","type-plugin","status-publish","hentry","plugin_tags-cloud-storage","plugin_tags-content-protection","plugin_tags-presigned-urls","plugin_tags-s3","plugin_tags-secure-downloads","plugin_category-utilities-and-tools","plugin_contributors-contentsentinel","plugin_committers-contentsentinel"],"banners":{"banner":"https:\/\/ps.w.org\/content-sentinel\/assets\/banner-772x250.png?rev=3409604","banner_2x":"https:\/\/ps.w.org\/content-sentinel\/assets\/banner-1544x500.png?rev=3409604","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/content-sentinel\/assets\/icon-256x256.png?rev=3409129","icon_2x":"https:\/\/ps.w.org\/content-sentinel\/assets\/icon-256x256.png?rev=3409129","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Content Sentinel is a powerful WordPress plugin that enables secure, time-limited access to files stored in AWS S3 or S3-compatible storage providers (like Wasabi, DigitalOcean Spaces, and Backblaze B2). Perfect for protecting premium content, course materials, digital products, and media files.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Secure File Delivery<\/strong>: Generate presigned URLs that expire automatically, ensuring your files remain protected<\/li>\n<li><strong>S3 Browser<\/strong>: Browse your S3 bucket directly from WordPress admin (Pro feature)<\/li>\n<li><strong>S3 Compatible<\/strong>: Works with AWS S3, Wasabi, DigitalOcean Spaces, Backblaze B2, and other S3-compatible providers<\/li>\n<li><strong>Clean URLs<\/strong>: Use shortcodes to generate clean, user-friendly download links instead of long presigned URLs<\/li>\n<li><strong>No AWS SDK Required<\/strong>: Pure PHP implementation - no external dependencies<\/li>\n<li><strong>Easy Setup<\/strong>: One-click AWS CloudFormation setup or manual configuration<\/li>\n<li><strong>Flexible Delivery Modes<\/strong>: Force download or stream\/play in browser (Pro feature)<\/li>\n<li><strong>Custom Denial Messages<\/strong>: Customize access denied messages (Pro feature)<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li><strong>Configure Your Storage<\/strong>: Connect to your AWS S3 bucket or S3-compatible provider<\/li>\n<li><strong>Generate Secure Links<\/strong>: Use the shortcode <code>[content_sentinel_url key=\"\/path\/to\/file.mp4\"]<\/code> to create secure download links<\/li>\n<li><strong>Automatic Expiration<\/strong>: Links expire after a set time (default: 10 minutes, configurable)<\/li>\n<li><strong>Protect Your Content<\/strong>: Files are never directly accessible - users must go through WordPress authentication<\/li>\n<\/ol>\n\n<h4>Use Cases<\/h4>\n\n<ul>\n<li><strong>Course Platforms<\/strong>: Deliver course videos and materials securely<\/li>\n<li><strong>Digital Products<\/strong>: Protect downloadable products and resources<\/li>\n<li><strong>Membership Sites<\/strong>: Control access to premium content<\/li>\n<li><strong>Media Libraries<\/strong>: Securely serve large video\/audio files<\/li>\n<li><strong>Document Sharing<\/strong>: Share sensitive documents with time-limited access<\/li>\n<\/ul>\n\n<h4>Pro Features (Content Sentinel Pro)<\/h4>\n\n<p>Upgrade to Content Sentinel Pro for advanced features:<\/p>\n\n<ul>\n<li><strong>Access Control<\/strong>: Integrate with MemberPress, Paid Memberships Pro, or WordPress Roles<\/li>\n<li><strong>Download Limiting<\/strong>: Set per-user and per-IP download limits<\/li>\n<li><strong>Download Logging<\/strong>: Track all download attempts with detailed logs<\/li>\n<li><strong>Custom Expiration<\/strong>: Override default expiration times per file<\/li>\n<li><strong>S3 Browser<\/strong>: Browse, navigate, and manage files directly in WordPress<\/li>\n<li><strong>Enhanced Video Player<\/strong>: Professional video player with speed controls and Picture-in-Picture<\/li>\n<li><strong>File Access Rules<\/strong>: Set granular permissions for individual files<\/li>\n<li><strong>Export\/Import Rules<\/strong>: Backup and restore your access control settings<\/li>\n<li>**Coming Soon - Google Cloud Services - S3.<\/li>\n<li>**Coming Soon - Visual Controls for the Enhanced Video Player.<\/li>\n<\/ul>\n\n<h4>Technical Details<\/h4>\n\n<ul>\n<li><strong>Pure PHP<\/strong>: No external dependencies or AWS SDK required<\/li>\n<li><strong>AWS Signature Version 4<\/strong>: Industry-standard security for S3 requests<\/li>\n<li><strong>WordPress Native<\/strong>: Uses WordPress APIs and follows WordPress coding standards<\/li>\n<li><strong>Performance Optimized<\/strong>: Caching and efficient URL generation<\/li>\n<li><strong>Security First<\/strong>: Input sanitization, nonce verification, and capability checks<\/li>\n<\/ul>\n\n<h4>Service Disclosure<\/h4>\n\n<p>This plugin relies on Amazon Web Services (AWS) to store and retrieve files as well as other\nS3 compliant services digitalocean, backblaze b2, Wasabi.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/aws.amazon.com\/privacy\/\">AWS Privacy Policy<\/a><\/li>\n<li><a href=\"https:\/\/www.digitalocean.com\/legal\/privacy-policy\/\">DO Privacy Policy<\/a><\/li>\n<li><a href=\"https:\/\/www.backblaze.com\/company\/policy\/privacy\">B2 Privacy Policy<\/a><\/li>\n<li><a href=\"https:\/\/wasabi.com\/legal\/privacy-policy\/\">Wasabi Privacy Policy<\/a><\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>For support, feature requests, and bug reports, please visit:\n* Website: https:\/\/content-sentinel.com\n* Support: support@content-sentinel.com\n* Documentation: https:\/\/content-sentinel.com\/docs<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Content Sentinel: Secure Downloads is developed by Content Sentinel.\nSpecial thanks to the WordPress community and all contributors.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to <strong>Plugins<\/strong> \u2192 <strong>Add New<\/strong><\/li>\n<li>Search for \"Content Sentinel\"<\/li>\n<li>Click <strong>Install Now<\/strong><\/li>\n<li>Click <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin zip file<\/li>\n<li>Extract the files to <code>\/wp-content\/plugins\/content-sentinel\/<\/code><\/li>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to <strong>Plugins<\/strong><\/li>\n<li>Find \"Content Sentinel\" and click <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Setup Instructions<\/h4>\n\n<ol>\n<li>Go to <strong>Settings<\/strong> \u2192 <strong>Content Sentinel<\/strong><\/li>\n<li>Choose your setup method:\n\n<ul>\n<li><strong>Quick Setup<\/strong>: Use the AWS CloudFormation one-click setup (AWS only)<\/li>\n<li><strong>Manual Setup<\/strong>: Enter your S3 credentials manually<\/li>\n<\/ul><\/li>\n<li>Configure your storage provider:\n\n<ul>\n<li>Select <strong>Amazon S3<\/strong> or <strong>S3 Compatible<\/strong><\/li>\n<li>Enter your bucket name, region, access key, and secret key<\/li>\n<li>For S3 Compatible providers, enter your custom endpoint URL<\/li>\n<\/ul><\/li>\n<li>Click <strong>Test Connection<\/strong> to verify your credentials<\/li>\n<li>Click <strong>Save Settings<\/strong><\/li>\n<\/ol>\n\n<h4>Getting Your AWS Credentials<\/h4>\n\n<p>If you don't have AWS credentials:<\/p>\n\n<ol>\n<li>Use the <strong>AWS Quick Setup<\/strong> button in the plugin<\/li>\n<li>This will open the AWS CloudFormation console<\/li>\n<li>Follow the step-by-step guide to create a secure S3 bucket and IAM user<\/li>\n<li>Copy the credentials back to WordPress<\/li>\n<\/ol>\n\n<p>For S3-compatible providers, refer to your provider's documentation for obtaining access credentials.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20aws%20account%3F\"><h3>Do I need an AWS account?<\/h3><\/dt>\n<dd><p>No! Content Sentinel works with AWS S3, but also supports S3-compatible providers like Wasabi, DigitalOcean Spaces, and Backblaze B2. You can use any S3-compatible storage service.<\/p><\/dd>\n<dt id=\"is%20the%20aws%20sdk%20required%3F\"><h3>Is the AWS SDK required?<\/h3><\/dt>\n<dd><p>No! Content Sentinel uses pure PHP to generate AWS Signature Version 4 requests. No external dependencies are required.<\/p><\/dd>\n<dt id=\"how%20secure%20are%20presigned%20urls%3F\"><h3>How secure are presigned URLs?<\/h3><\/dt>\n<dd><p>Presigned URLs use AWS Signature Version 4, the same security standard used by AWS SDKs. URLs expire after a set time (default: 10 minutes), and each URL is cryptographically signed.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20s3-compatible%20providers%3F\"><h3>Can I use this with S3-compatible providers?<\/h3><\/dt>\n<dd><p>Yes! Content Sentinel supports any S3-compatible storage provider. Simply select \"S3 Compatible\" and enter your provider's endpoint URL.<\/p><\/dd>\n<dt id=\"what%20permissions%20does%20my%20iam%20user%20need%3F\"><h3>What permissions does my IAM user need?<\/h3><\/dt>\n<dd><p>Your IAM user needs:\n* <code>s3:GetObject<\/code> - To download files\n* <code>s3:ListBucket<\/code> - To browse files (Pro feature)<\/p>\n\n<p>You can restrict access to specific buckets or paths for additional security.<\/p><\/dd>\n<dt id=\"how%20do%20i%20generate%20download%20links%3F\"><h3>How do I generate download links?<\/h3><\/dt>\n<dd><p>Use the shortcode: <code>[content_sentinel_url key=\"\/path\/to\/file.mp4\"]<\/code><\/p>\n\n<p>Or use the Pro version's S3 Browser to copy links directly.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20expiration%20time%3F\"><h3>Can I customize the expiration time?<\/h3><\/dt>\n<dd><p>Yes! The default expiration is 10 minutes, but you can change it in settings (up to 7 days, which is AWS's maximum). Pro users can set custom expiration times per file.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20link%20expires%3F\"><h3>What happens if a link expires?<\/h3><\/dt>\n<dd><p>Expired links return an error. Users will need to request a new link. This ensures your content remains protected.<\/p><\/dd>\n<dt id=\"do%20i%20need%20the%20pro%20version%3F\"><h3>Do I need the Pro version?<\/h3><\/dt>\n<dd><p>The free version provides secure file delivery with presigned URLs. Upgrade to Pro for access control using wordpress roles\/memberpress\/paid membership pro, download limiting, file logging, and the S3 Browser Control interface.<\/p><\/dd>\n<dt id=\"is%20my%20data%20secure%3F\"><h3>Is my data secure?<\/h3><\/dt>\n<dd><p>Yes! Content Sentinel follows WordPress security best practices:\n* All inputs are sanitized\n* Nonces verify form submissions\n* Capability checks restrict access\n* No sensitive data is logged\n* Files are never directly accessible<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>AWS S3 and S3-compatible provider support<\/li>\n<li>Presigned URL generation<\/li>\n<li>Shortcode support for clean URLs<\/li>\n<li>AWS CloudFormation one-click setup<\/li>\n<li>Manual configuration option<\/li>\n<li>S3 Browser (Pro feature)<\/li>\n<li>Access Control integration (Pro feature)<\/li>\n<li>Download limiting and logging (Pro feature)<\/li>\n<li>Enhanced video player (Pro feature)<\/li>\n<\/ul>","raw_excerpt":"Securely download S3 files via short-lived, presigned URLs. No AWS SDK required. Includes 1-Click AWS Setup.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/264585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=264585"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/contentsentinel"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=264585"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=264585"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=264585"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=264585"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=264585"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=264585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}