Skip to content
ClientPress
  • Pricing
  • Features
  • Demo
  • Use CasesExpand
    • Coaches and Consultants
    • Employee Onboarding
    • Freelancers and Contractors
    • Teams Working With Outside Freelancers
    • Web and Digital Agencies
  • Contact
  • Log In
  • 0
ClientPress

Getting Started

7
  • Inviting a Client to Their Portal
  • Creating Your First Portal
  • User Roles Explained
  • Initial Setup Checklist
  • Plugin Overview — What ClientPress Does
  • Magic Login Links in Email Notifications
  • How to Link Clients to Their Portal

Navigation

1
  • How Client Login and Redirect Works

Assets, Files, and Deliverables

1
  • Portal Files — Browsing All Uploaded Files Across Portals

Client Setup

4
  • Onboarding — Guiding Clients Through Their First Steps
  • Managing Client Invitations
  • Assigning Project Managers to a Portal
  • Adding Sub-Clients to a Portal

Advanced

3
  • Uninstalling ClientPress — What Data Gets Deleted
  • Private File Storage and Security
  • Activity Log — What Gets Tracked and How to Use It

Automations and Integrations

5
  • REST API Overview
  • Connecting ClientPress to OttoKit
  • Connecting ClientPress to Make
  • Connecting ClientPress to Zapier
  • Using Webhooks with ClientPress

Features and Tabs

14
  • Onboarding — Guiding Clients Through Their First Steps
  • Docs — Adding Portal-Specific Client Documents
  • Guides — Creating and Assigning Global Support Docs
  • People Tab — Managing Portal Members
  • Tools & Links Tab — Building a Client Resource Board
  • Managing Deliverable Revisions
  • Deliverables — Sending Work for Client Approval
  • File Approval Workflow
  • Files Tab — Uploading and Managing Client Files
  • Calendar View — Visualizing Task Due Dates
  • Using the Kanban Board View for Tasks
  • Task Manager — Creating and Managing Tasks
  • Message Board — Topic-Based Team Discussions
  • Discussion Tab — Private Messaging with Clients

Notifications and Emails

3
  • Enabling or Disabling Admin Notifications
  • How Clients Can Manage Their Notification Preferences
  • How Portal Notifications Work

Portals and Hubs

6
  • Setting Portal Width and Layout per View
  • Configuring the Portal Landing Tab
  • Branding a Portal
  • Using Portal Templates
  • Managing Portal Status
  • Understanding Portals and Hubs (Child Portals)

Settings and Configuration

5
  • Setting Up the Login Redirect
  • Appearance Settings
  • Configuring Deliverable Categories and Revision Limits
  • Configuring File Upload Settings
  • Enabling and Disabling Portal Features Globally

Shortcodes and Theme

2
  • Customizing Portal Colors with the Theme Customizer
  • Shortcode Reference

Developer

5
  • ClientPress Hooks & Filters
  • ClientPress Outbound Webhooks
  • ClientPress Inbound Webhooks
  • ClientPress REST API
  • ClientPress Abilities API Integration
View Categories
  • Home
  • Support Documentation
  • Advanced
  • Private File Storage and Security

Private File Storage and Security

1 min read

Files uploaded through the ClientPress Files tab and Deliverables tab are stored in protected directories that cannot be accessed directly via URL. This ensures only authorized portal members can download files.


Where Files Are Stored #

Files are stored in separate protected directories within your WordPress uploads folder:

  • Files tab uploads — /wp-content/uploads/cp-private/{portal_id}/
  • Deliverables tab uploads — /wp-content/uploads/cp-deliverables/{portal_id}/

Each portal gets its own subdirectory identified by its post ID.


How Direct Access Is Blocked #

Each protected directory contains two security files created automatically by ClientPress:

  • .htaccess — Contains Deny from all, which blocks all direct HTTP requests to files in the directory on Apache servers
  • index.php — A blank PHP file that prevents directory listing if .htaccess is not enforced

This means that even if someone knows the exact file path, navigating directly to yoursite.com/wp-content/uploads/cp-private/42/contract.pdf will return a 403 Forbidden error.


How Files Are Served #

When a portal member downloads a file, the request goes through a WordPress rewrite rule rather than directly to the file:

  • Files tab: Requests to yoursite.com/cp-file/{portal_id}/{filename} are intercepted by WordPress
  • Deliverables tab: Requests to yoursite.com/cp-deliverable/{portal_id}/{filename} are intercepted by WordPress

Before serving any file, ClientPress runs the following checks:

  1. Is the user logged in? If not, they are redirected to the login page
  2. Does the user have access to this portal? If not, they receive a 403 error
  3. Does the file exist? If not, they receive a 404 error

Only after passing all checks does ClientPress serve the file, with appropriate headers (Content-Type, Content-Disposition, Content-Length).


Nginx Servers #

The .htaccess file only works on Apache. If your server runs Nginx, you will need to add equivalent rules to your Nginx configuration to block direct access to the cp-private and cp-deliverables directories. Contact your hosting provider for assistance if needed.


Cloud File Offloading #

ClientPress integrates with Advanced Media Offloader (AMO) for sites that store uploads in cloud storage (Amazon S3, Cloudflare R2, DigitalOcean Spaces, etc.).

When AMO is active:

  1. Files are uploaded to your server first
  2. ClientPress passes the file to AMO, which uploads it to your cloud bucket
  3. The local copy is deleted from your server
  4. The file’s cloud storage key is saved in the portal’s metadata

When a portal member downloads the file, ClientPress:

  1. Retrieves the file from cloud storage on the server side
  2. Streams it directly to the user’s browser
  3. Deletes the temporary local copy immediately after

The cloud bucket does not need to be publicly accessible. Files are never served directly from the cloud URL — they always pass through the same access-control checks as locally stored files.

Updated on June 9, 2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Uninstalling ClientPress — What Data Gets DeletedActivity Log — What Gets Tracked and How to Use It

Leave a ReplyCancel reply

Table of Contents
  • Where Files Are Stored
  • How Direct Access Is Blocked
  • How Files Are Served
  • Nginx Servers
  • Cloud File Offloading

Use Cases

  • Coaches and Consultants
  • Employee Onboarding
  • Freelancers and Independent Contractors
  • Teams Working With Outside Freelancers
  • Web and Digital Agencies

How We Compare

  • Market Comparison
  • ClientPress vs Client Portal
  • ClientPress vs. Asana
  • ClientPress vs. Basecamp
  • ClientPress vs. Microsft Teams
  • Clientpress vs. Clickup

Customers

  • Dashboard

Support

  • Documentation
  • Support
  • Changelog
  • Roadmap

Affiliates

  • Affiliate Program
  • Affiliate Dashboard
  • Affiliate Terms and Conditions

Legal

  • Privacy Policy
  • Terms of Service

© 2026 ClientPress

Review My Order

0

Subtotal

Taxes & shipping calculated at checkout

Checkout
  • Pricing
  • Features
  • Demo
  • Use Cases
    • Coaches and Consultants
    • Employee Onboarding
    • Freelancers and Contractors
    • Teams Working With Outside Freelancers
    • Web and Digital Agencies
  • Contact
  • Log In
  • 0

Notifications