Docs
S3 tools and SDKs
tport.space speaks the S3 API, so the tools you already use work with three settings.
| Endpoint | https://s3.tport.space |
| Region | auto (any name works) |
| Access key id / secret | From the Keys page of the console |
| Addressing | Path style (s3.tport.space/bucket/file); virtual-host style works too |
AWS CLI
aws configure --profile tport # AWS Access Key ID: TPS... # AWS Secret Access Key: (your secret) # Default region name: auto aws s3 sync ./site s3://my-site/ --endpoint-url https://s3.tport.space --profile tport
Newer CLI versions read the endpoint from the profile too: add endpoint_url = https://s3.tport.space under [profile tport] in ~/.aws/config and drop the flag.
rclone
[tport] type = s3 provider = Other access_key_id = TPS... secret_access_key = ... endpoint = https://s3.tport.space region = auto
rclone sync ./photos tport:my-files/photos
Python (boto3)
import boto3
s3 = boto3.client("s3", endpoint_url="https://s3.tport.space", region_name="auto",
aws_access_key_id="TPS...", aws_secret_access_key="...")
s3.upload_file("backup.tar.gz", "my-files", "backups/backup.tar.gz")
url = s3.generate_presigned_url("get_object", Params={"Bucket": "my-files", "Key": "backups/backup.tar.gz"},
ExpiresIn=3600)JavaScript (AWS SDK v3)
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
const s3 = new S3Client({
endpoint: "https://s3.tport.space",
region: "auto",
forcePathStyle: true,
credentials: { accessKeyId: "TPS...", secretAccessKey: "..." },
});
await s3.send(new PutObjectCommand({ Bucket: "my-files", Key: "hello.txt", Body: "hi" }));restic
export AWS_ACCESS_KEY_ID=TPS... AWS_SECRET_ACCESS_KEY=... restic -r s3:https://s3.tport.space/my-backups init restic -r s3:https://s3.tport.space/my-backups backup ~/Documents
Cyberduck and other apps
Choose "Amazon S3" (or "S3 compatible"), server s3.tport.space, port 443, and your key id and secret. Apps that ask for a region take auto.
Good to know
- Buckets are made and deleted in the console, not with
CreateBucket. - Presigned links work for every supported call, for up to 7 days.
- Large files: tools switch to multipart uploads on their own. One request carries up to 100 MB, so keep part sizes at 100 MB or less (the defaults of the AWS CLI, rclone and boto3 already are).
- The full list of supported calls is in Limits and supported operations.