Cloud Storage & Upload Limits

ClientCove stores resource files either locally on your WordPress server or in the cloud. For any portal that serves large files — videos, design assets, high-resolution images, or big PDFs — or a busy, high-traffic library, cloud storage is the right choice. DigitalOcean Spaces is our recommended and officially supported cloud provider, chosen for its straightforward setup and predictable, low pricing.

Storage Providers

ClientCove is built on an S3-compatible storage layer, so it can technically talk to any S3-compatible bucket. In practice we support and recommend one cloud provider — DigitalOcean Spaces — because it is the easiest to configure and the most cost-effective. AWS S3 and Google Cloud Storage are capable back ends, but they are not part of our supported, tested configuration.

ProviderIdentifierSupport StatusBest For
DigitalOcean Spacesspaces✅ Recommended & supportedNearly every ClientCove deployment — simple setup, predictable low pricing, S3-compatible API
Locallocal✅ SupportedSmall portals, low file counts, quick start with no external account
AWS S3s3⚠️ Capable, not supportedTeams with existing AWS infrastructure who accept self-service configuration
Google Cloud Storagegcs⚠️ Capable, not supportedTeams with existing GCP infrastructure who accept self-service configuration

Choose the active provider in Settings → Storage.

Direct Upload vs Through-PHP

How a file gets from the user's browser to storage depends on the provider:

ModeTriggerBehaviorPractical Limit
Direct uploadCloud provider active (spaces, s3, or gcs)The browser uploads straight to the bucket through a signed URL and never touches PHPEffectively unlimited — the provider's own limits apply (for example, a 5 GB single-part ceiling on Spaces and S3)
Through-PHPLocal provider activeFiles are POSTed to wp-admin/async-upload.php, and PHP writes them to diskCapped by upload_max_filesize and post_max_size — typically around 64 MB on shared hosts

ClientCove decides automatically. The Resources page exposes the choice as JavaScript config:

window.resourceManagerConfig = {
  directUpload: true,           // true when cloud is active
  storageProvider: 'spaces'     // or 's3' / 'gcs' / 'local'
}

Configuring a Cloud Provider

  1. Go to Settings → Storage.
  2. Select a provider. We recommend DigitalOcean Spaces.
  3. Enter the credentials for that provider:
    • DigitalOcean Spaces (recommended): access key, secret key, region, bucket name, and an optional CDN endpoint.
    • AWS S3 (capable, not supported): access key ID, secret access key, region, and bucket.
    • Google Cloud Storage (capable, not supported): service account JSON key and bucket.
  4. Choose Public or Private as the default visibility for new uploads.
  5. Save.

ClientCove runs a connection test after you save. Resolve any reported errors before continuing.

Upload Size Limits

Local mode (through-PHP)

Determined by your PHP and web server config:

SettingTypical DefaultWhat It Affects
upload_max_filesize2–64 MBMax single file size
post_max_size8–64 MBMax total request size
memory_limit128–256 MBPHP memory available during upload
Nginx client_max_body_size1 MB (default)Max request body size at the proxy

Increase any of these in php.ini, .htaccess, or your hosting control panel. For Nginx, edit the server block.

Cloud mode (direct upload)

ProviderSupport StatusSingle-part MaxMulti-part Max
DigitalOcean Spaces✅ Recommended & supported5 GB5 TB
AWS S3⚠️ Capable, not supported5 GB5 TB
Google Cloud Storage⚠️ Capable, not supported5 TB5 TB

ClientCove automatically uses single-part uploads for files under 100 MB and switches to multi-part uploads for anything larger.

Public vs Signed URLs

Each file is stored with a visibility flag:

Public files

Use fast, cacheable public URLs. Best for:

  • Brand kit images
  • Color palette swatches
  • Public marketing PDFs
  • Anything you'd be comfortable posting on a website

Private files

Use short-lived signed URLs that ClientCove regenerates on every download request. Best for:

  • Client deliverables
  • Contracts and legal documents
  • Sensitive design files
  • Anything that should not be hot-linkable

Signed URLs typically expire 1 hour after generation. The portal regenerates them transparently when a user clicks download.

Migrating Existing Files

Switching providers (e.g. local → Spaces) does not automatically migrate existing files. Old files keep working from their original location; only new uploads go to the new provider.

To consolidate:

  1. Configure the new provider
  2. Run Settings → Storage → Migrate Existing Files (when present)
  3. Monitor progress — large libraries can take hours
  4. After verification, optionally delete originals from the old location

Was this page helpful?