Storage / Your own bucketMenu

Your own bucket

Store a server's files in your own S3-compatible bucket, on Amazon S3, Cloudflare R2, Google Cloud Storage, Hetzner, MinIO or any other S3-compatible service.

By default a server stores files in CloudFile storage, which counts towards your plan. You can instead connect your own S3-compatible bucket. SFTP and FTP uploads then go straight into it, and the storage is billed by your provider, not by us. This works on every plan.

Connect a bucket

  1. Go to Storage and click Add bucket.
  2. Pick your provider. We fill in the endpoint and region format for you.
  3. Enter the bucket name, access key ID and secret access key.
  4. Click Test connection. We write a small .cloudfile-check file, read it back, list the bucket and delete the file again.
  5. Save.

Then open a server, go to Settings → Storage, pick the bucket and save. You can also pick it when you create a server.

Each provider below has a step-by-step setup guide. Any other service that speaks the S3 API works too: pick Other S3-compatible.

Choosing a provider

Any of these works the same way in CloudFile. The differences are in pricing and where the data lives:

Provider Good for Notes
Amazon S3 Teams already on AWS Most regions; egress is billed per GB
Cloudflare R2 Servers with heavy downloads No egress fees; optional EU jurisdiction
Wasabi Long-term archives No egress fees while monthly downloads stay within stored volume; 90-day minimum storage on pay-as-you-go
Backblaze B2 Low-cost storage Free egress up to 3× stored data; one region per account
DigitalOcean Spaces Teams already on DigitalOcean $5/month includes 250 GiB storage and 1 TiB outbound transfer
Hetzner Object Storage EU data residency Germany and Finland only; monthly price includes a storage and egress quota
Google Cloud Storage Teams already on Google Cloud Egress is billed per GB; soft delete keeps deleted files (billed) for 7 days by default
Scaleway EU data residency Paris, Amsterdam, Warsaw and Milan
OVHcloud EU data residency, global reach Regions in Europe, Canada, Singapore, Australia and India
IDrive e2 Low-cost storage Regions in the US, Canada, Europe and Asia
MinIO Files on your own hardware You run the server; it must be reachable over public https

Where files go

Each SFTP user gets their own folder in the bucket:

<bucket>/<folder>/<username>/<path>

The folder is optional and set per server in Settings → Storage. Leave it empty to put user folders at the root of the bucket. Several servers can share one bucket if each uses a different folder.

Permissions

The access key needs these permissions on the bucket:

Permission Used for
s3:ListBucket Listing folders
s3:GetObject Downloads and download links
s3:PutObject Uploads, renames and new folders
s3:DeleteObject Deletes and renames
s3:AbortMultipartUpload Cleaning up interrupted large uploads

Limit the key to this one bucket. We encrypt the secret key before storing it and never show it again.

Switching storage

You can move a server between CloudFile storage and your buckets at any time. Files are not copied. After the switch, users see what is in the new location. To keep existing files, copy them first, for example with rclone, into <folder>/<username>/.

Deleting a server or a user never deletes files in your bucket.

Quotas and webhooks

User quotas still work on your own bucket and don’t use your plan’s storage. Quota usage is measured by scanning the user’s folder, so very large folders take a little longer to update.

Webhook payloads include a download_url. On your own bucket it’s a presigned link to your bucket, valid for one hour.

Requirements

  • The endpoint must use https and be reachable from the internet.
  • The bucket must already exist. We never create or delete buckets.
  • Path-style URLs (https://endpoint/bucket/key) are used for Cloudflare R2, Google Cloud Storage, IDrive e2, MinIO and Other S3-compatible, and are needed by most self-hosted services such as Ceph. Virtual-hosted URLs (https://bucket.endpoint/key) are used for the other providers. The provider presets pick the right one.