
S3-compatible does not mean that every storage service is the same service. It means a client can speak the familiar S3 request and signing format to a different endpoint. That matters because the skills and automation you already have — command-line copies, rclone jobs and Python scripts — can move with your bucket instead of being rewritten around one vendor’s dashboard.
For tport.space, start with a bucket and an access key from the console. Keep the secret in a password manager or your system’s credential store, never in a repository. The endpoint used in the examples is https://s3.tport.space, the region is auto, and path-style requests are the safest starting point while you are proving a configuration.
The four values every client needs
The endpoint is the portability switch. AWS CLI exposes it as --endpoint-url; rclone calls it endpoint; boto3 calls it endpoint_url. If a command accidentally talks to the default AWS endpoint, stop there — a successful command against the wrong account is worse than a clear error.
AWS CLI: a small, reversible smoke test
That sequence uses one small object and removes it only after reading it back. list-buckets confirms that the key can see buckets; the copy/read/remove sequence proves the three permissions a backup job normally needs. AWS CLI documents --endpoint-url as the global override, and its list-buckets command is paginated — do not build an inventory script that assumes one unbounded response.
rclone: a reusable remote
rclone’s S3 backend supports many S3-compatible providers; provider = Other is the conservative choice for an endpoint that is not a named preset. rclone check is valuable after a first move because it compares the source and destination rather than treating a zero exit from copy as proof that every expected file arrived.
boto3: set the endpoint on the client, not in each operation
Keeping credentials in environment variables here prevents them being committed beside the program. The head_object result supplies an exact byte count after the upload. For a 314,572,800-byte archive, that is 300 MiB (314,572,800 ÷ 1,048,576), so an expected-size check can catch a truncated local build before a restore day.
s3cmd: configure endpoint and host separately
With host_bucket = s3.tport.space/%(bucket), s3cmd uses a path-style bucket URL rather than trying to create a hostname from the bucket name. Keep Signature Version 4 enabled (signature_v2 = False): current S3-compatible services normally expect it.
A practical compatibility checklist
Use a dedicated, narrowly scoped key when the console permits it: a backup process should not need to create unrelated buckets. Also test the exact features you rely on. A plain object upload says nothing about versioning, object-lock semantics, ACLs, website hosting or a provider-specific encryption option. Compatibility is strongest when you stay with standard bucket and object operations.
What moves cleanly — and what needs a test
Once your small test works, the same endpoint can serve a deployment artifact, a media upload or a backup. For the next practical use, follow our rclone website-backup runbook and include a restore test — an object that exists is not yet a backup you know how to use.
Create a bucket and access key, then connect the S3 client you already use.
Open tport.spaceSources
AWS, AWS CLI list-buckets reference (global --endpoint-url, pagination and parameters), consulted 31 October 2026.
rclone, Amazon S3 backend documentation (S3 backend, provider compatibility and configuration options), consulted 31 October 2026.
AWS, Boto3 S3 guide (S3 client operations and transfers), consulted 31 October 2026.
s3tools, Using s3cmd with S3-compatible services (endpoint configuration concepts), consulted 31 October 2026.