PD Object Storage for Blesta

PD Object Storage — Sell S3, R2, MinIO or Spaces Storage as a Native Blesta Package

Sell object storage on Amazon S3, Cloudflare R2, DigitalOcean Spaces or MinIO — any mix, from one Blesta module

Made and supported by Projektif Digital Ltd. Runs inside PD Modules, the panel every module installs into.

Object Storage

PD Object Storage lets a hosting company sell S3-compatible object storage on Amazon S3, Cloudflare R2, DigitalOcean Spaces or your own MinIO server, in any mix, from one Blesta module. Your customer orders a package in Blesta, a private bucket and a scoped access key are created at the backend you chose for that package, and your customer manages their storage from the Blesta client area. You set the price, the provider bills you for what is stored, and the difference is your margin.

It is built for hosts who want more than one storage offer: a premium Amazon S3 package next to a lower-cost Spaces plan, an EU-resident R2 package for customers who need it, or a self-hosted MinIO plan on their own hardware, without installing and learning a different module for each.

Why hosts choose PD Object Storage

One module, four backends. Amazon S3, Cloudflare R2, DigitalOcean Spaces and MinIO are all built in. Choose the backend per package on its Module tab, and run several side by side in one Blesta. An Amazon S3 package and a Cloudflare R2 package can be sold together, each using its own account.

One experience for your customers. Whatever sits behind the package, your customer gets the same client area: connection details, usage, buckets, share links and ready-made setups. Your team learns one module and your customers learn one screen.

Placement that cannot fail. The order form offers only the locations that suit the backend: AWS regions, DigitalOcean datacenters or Cloudflare data locations, curated so a customer is never offered a choice that will fail. Cloudflare R2's EU-only choice is a hard data-residency boundary, which is what lets you promise it to customers.

Only what the backend can do. The module offers only the features a backend supports. Cloudflare R2 does not expose object versioning, so an R2 package simply does not show the Versioning option.

Isolation the provider enforces. Each order gets its own bucket and its own scoped credential: an access key, a token or a user, depending on the backend. One customer's credential cannot reach another's data on any backend.

Nothing is deleted by accident. Cancelling a service revokes access at once but keeps the data through a retention window you choose, and nothing is purged without your approval unless you switch on automatic purging.

How it works

  1. Connect your backends. Under Settings, Company, Modules, add an account for each backend. The panel shows exactly which fields each backend needs, and Test Connection checks every account and proves it can issue customer credentials.
  2. Create a package and pick its Backend. Choose Amazon S3, Cloudflare R2, DigitalOcean Spaces or MinIO on the package's Module tab, with the account it should use.
  3. Generate the options. One click builds the order options for that backend: Storage Quota, Max Buckets, the right placement choice and, where the backend supports it, Versioning. You set the prices.
  4. Your customer orders. Once Blesta provisions the paid service, the bucket and credential are created at that backend and the customer's storage page is ready.
Package settings: the storage account, backend, quota mode, default region and client features
Package settings: the storage account, backend, quota mode, default region and client features

What you get in Blesta

Selling and pricing

  • Storage Quota from 10 GB to 5 TB, or unlimited
  • Placement tailored to the backend: Region for Amazon S3 (fifteen general-purpose regions) and DigitalOcean Spaces (twelve datacenters), Data Location for Cloudflare R2 (eight locations including EU-only)
  • Rebuilding the options keeps the choices existing customers already made
  • Soft or hard quota mode per package
  • Usage is measured daily from the backend's own API and shown to the customer against their quota; Blesta has no usage-based billing, so storage is sold in quota tiers
  • Upgrades and downgrades through Blesta's own flow, with data preserved

Provisioning you can trust

  • With no account connected, an order is refused up front instead of left half-made
  • A failed check names the account and backend and says what permission to fix
  • Works inside the provider account you already have, touching only what it creates
  • Test Connection confirms the credential can issue customer keys, not merely read

Running it day to day

  • A Clients & Storage view of every service across all backends with its state, access mode, quota and usage
  • Change a service to read and write, read-only or disabled without touching the customer's keys or data
  • Suspend as read-only so customers can still download, or as disabled; unsuspending restores the previous access
  • Keep cancelled data for 7, 14, 30, 60 or 90 days, or delete it straight away; an immediate purge needs the bucket name typed
  • A read-only reconcile compares each provider with Blesta and flags orphans without deleting anything
  • A health report, an activity log, and 80% and 100% quota emails you can switch off or copy to your administrators

What your customers get

  • Connection details: endpoint, bucket, region, access key and secret key
  • Key rotation in one click: a new key pair is issued in seconds and the old one is deleted
  • Their own buckets: create extra buckets up to their plan
  • Automatic clean-up rules per bucket, and versioning where the backend supports it
  • Cross-origin (CORS) rules for web apps
  • Share links: expiring download or upload links, without sharing keys
  • Usage against their quota, with a 30-day history
  • Ready-made setups for the AWS CLI, rclone, s3cmd, Cyberduck and WinSCP, cPanel backups and WordPress backup plugins, plus SDK examples for developers
An Amazon S3 service in the Blesta client area: endpoint, bucket, region and usage
An Amazon S3 service in the Blesta client area: endpoint, bucket, region and usage

Bucket management, share links and storage settings are each a switch on the package. The pages follow your Blesta client theme and are fully translatable.

On Amazon S3 and MinIO, hard mode pauses uploads at 100% while downloads and deleting keep working. On DigitalOcean Spaces and Cloudflare R2, uploads are never paused: the customer is emailed at 80% and 100% and you see the overage. Downloads always work.

Security built in

  • Your backend credentials are stored encrypted, and leaving the box blank when you later edit an account keeps them.
  • Customers never see or use your credential: they get their own scoped one.
  • Cancelling a service revokes the customer's key immediately.
  • Nothing about your customers' data is sent to us: the module talks only to your backends and to the PD Modules licence check.
  • Some providers cap credentials per account, and each service uses one. The setup notes tell you what to check.

One product, every feature

PD Object Storage is one paid module with all four backends and every feature included. There are no tiers to compare. If you sell only one backend, the single-provider modules offer the same engine focused on that provider. It installs into PD Modules in one click and updates itself.

If your subscription ever lapses, nothing is deleted. You get a 14-day grace period with everything working, then admin management locks while customers keep their storage, and only after that do customer features pause, behind a neutral message that never mentions licensing.

Requirements

  • Blesta 6 or later on PHP 8.2 or later, with the ionCube Loader, and Blesta's cron running
  • An account at each backend you sell: Amazon S3 (IAM access key), Cloudflare R2 (account ID and API token), DigitalOcean Spaces (personal access token) or your own MinIO server (admin key)
  • PD Modules, the free control panel every PD module installs into

Questions

Which storage providers does it support?

Four, all built in: Amazon S3, Cloudflare R2, MinIO, and DigitalOcean Spaces. You choose the backend per package, and you can run several backends side by side in the same Blesta — each package on its own server.

Do I need one module per provider?

No. PD Object Storage is the single flagship covering all four backends. If you only ever sell one, the focused editions (PD AWS S3, PD Cloudflare R2, PD MinIO S3, PD DigitalOcean Spaces) offer the same engine for that one provider.

Whose storage account is used?

Yours. You connect your own account for each backend, and every customer bucket is provisioned into it. You pay the provider at cost, set your sell price in Blesta, and keep the difference.

How is each customer isolated?

Every order gets its own bucket and a credential scoped to that bucket only — an S3 access key, an R2 token, an IAM user, or a Spaces key depending on the backend. One customer's credential cannot reach another customer's data. Your master credentials never leave your Blesta server.

How does billing work?

A daily task measures each service's real storage use and writes it into Blesta's disk-usage fields, so native overage billing, quota warnings and the client-area usage graph all work automatically — on every backend.

What happens when a customer hits their quota?

New uploads are blocked, but downloads always keep working — so a customer over quota can still retrieve their data. Raising their plan restores uploads immediately, with data preserved.

Is data ever deleted automatically?

Only if you choose automatic purging. By default, terminating a service revokes access instantly but retains the bucket and files for a window you set (7–90 days); purging then requires your approval and typing the bucket name to confirm.

Do the features differ by backend?

Yes, honestly. The module only offers what each backend actually supports — for example Cloudflare R2 has no object versioning, so that option and control simply aren't shown for an R2 product. Regions and data-location choices adapt too (including Cloudflare R2's EU-only residency).

Can customers upgrade or downgrade?

Yes — through Blesta's standard upgrade/downgrade flow. Quota and bucket-count changes apply with all data preserved; downgrading below current usage pauses uploads rather than deleting anything.

What do I need on my Blesta server?

PHP 8.1+ and a normal Blesta's cron. The module talks to each backend over standard HTTPS APIs — nothing else to install.

What’s new in 0.1.47

  • Fixed: the Products screen listed nothing when the products were there. It now finds every product this module provisions, whichever billing system you run.

Get your website online with PD Hosting

UK hosting, domains and support from a real team. From a first site to a full server.

Terms and Conditions  ·  Privacy Policy

PD Hosting is the trading name of Projektif Digital Ltd, registered in England and Wales, company number 12482555.

PD Hosting
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.