SFTP to OVHcloud Object Storage, without egress fees
OVHcloud Object Storage doesn't charge for ingress, egress or API calls, and has regions across Europe plus Canada, Singapore, Australia and India. CloudFile adds an SFTP, FTPS and FTP server in front of a bucket, written by an S3 user whose policy covers that bucket only.
OVHcloud with CloudFile, at a glance.
| Endpoint | https://s3.<region>.io.cloud.ovh.net, filled in from the region |
|---|---|
| URL style | Virtual-hosted |
| Credentials | Keys of a separate Object Storage user with an imported JSON policy for one bucket, not the bucket owner |
| Regions | France, Germany, the UK, Poland and Italy, plus Canada, Singapore, Australia and India. Paris and Milan are 3-AZ. |
| Pricing model | Storage per GB by class and deployment (3-AZ or 1-AZ). No charges for ingress, egress or API calls. |
OVHcloud prices are from their public website as of October 2026, excluding taxes. Your bucket is billed by OVHcloud, not by us, and doesn't count toward your plan's storage.
Why pair SFTP with OVHcloud.
Downloads don't add up
No egress and no API call fees, so partners pulling files and webhook downloads don't change the bill.
3-AZ in Paris and Milan
Pick a Multi-Zone region when the bucket has to survive the loss of a datacenter.
Beyond Europe too
Buckets in Canada, Singapore, Australia or India for partners there, with the same setup.
A European provider
OVHcloud is headquartered in France, which helps when procurement asks about the provider behind the bucket.
How it works, in three steps.
- Step 1
Create a bucket and a scoped S3 user
Create the container in your region. Then create a second Object Storage user and import a JSON policy for this bucket.
user cloudfile policy: acme-sftp, acme-sftp/* - Step 2
Connect it in CloudFile
Storage → Add bucket → OVHcloud. Pick the region code, such as gra or eu-west-par, and paste the user's keys.
https://s3.eu-west-par.io.cloud.ovh.net ✓ test passed - Step 3
Uploads go to OVHcloud
Each user writes under its own prefix, and a webhook or email reports every upload.
acme → acme-sftp/acme/exports/2026-10.zip
Every click and field is in the OVHcloud setup guide.
What your partners see, and where it lands in OVHcloud.
$ sftp -P 22000 [email protected]
sftp> put invoice-2026-10.pdf
sftp> ls
invoice-2026-10.pdfYour OVHcloud bucket<bucket>/<folder>/acme/invoice-2026-10.pdf
<bucket>/<folder>/_shared/inbox/…Any SFTP, FTPS or FTP client: FileZilla, WinSCP, Cyberduck, the sftp command or their own system. WebDAV too, if you turn it on.
Their own home folder as /, and nothing else. They never see the bucket name, other users' folders or your keys.
A password, an SSH key or both, with the permissions you pick: full access, read only or upload only.
Shared folders at /shared/<name> when several users need the same files. They live under _shared/<name>/ in your OVHcloud bucket.
Get these right in OVHcloud.
Don't give CloudFile the bucket owner's keys. OVHcloud owners keep full control through the bucket ACL whatever their policy says.
Object Lock can't be turned off once it's on, and it stops SFTP users from deleting or replacing files.
Use the s3.<region>.io.cloud.ovh.net endpoint, not the older .perf.cloud.ovh.net or Swift endpoints.
Questions about SFTP on OVHcloud.
Is there really no egress fee?
OVHcloud's Object Storage page says there are no fees for ingress, egress or API calls; you pay for stored capacity, and for retrievals on archive classes. Check their price list for your region and class.
Why a second S3 user instead of the owner?
OVHcloud can't restrict a bucket owner: owners keep full control through the ACL. A separate user with a bucket policy is the only way to limit CloudFile's key to one bucket.
Which region code do I enter?
The lowercase code, such as gra, sbg, de or eu-west-par, not the city name. The endpoint is built from it.
Which storage class should I use?
Standard. Infrequent Access and the archive classes have minimum billed durations and retrieval fees.
More in the docs: OVHcloud setup · Your own bucket · Webhooks