The Settings
Endpoint: https://s3.us-west.virteche.com Region: us-west Addressing: path-style (force_path_style / s3ForcePathStyle / addressing_style = path) Access key: from your dashboard Secret key: shown once in your dashboard
AWS CLI
aws configure --profile virteche # key, secret, region us-west aws configure set profile.virteche.s3.addressing_style path aws configure set profile.virteche.request_checksum_calculation when_required aws configure set profile.virteche.response_checksum_validation when_required aws s3 ls s3://my-bucket --profile virteche --endpoint-url https://s3.us-west.virteche.com aws s3 cp ./report.pdf s3://my-bucket/reports/ --profile virteche --endpoint-url https://s3.us-west.virteche.com aws s3 sync ./photos s3://my-bucket/photos --profile virteche --endpoint-url https://s3.us-west.virteche.com
A link someone else can download one object with, valid for a day:
aws s3 presign s3://my-bucket/reports/report.pdf --expires-in 86400 \ --profile virteche --endpoint-url https://s3.us-west.virteche.com
rclone
rclone config create virteche s3 provider Other endpoint https://s3.us-west.virteche.com region us-west \ access_key_id YOUR_KEY secret_access_key YOUR_SECRET force_path_style true no_check_bucket true rclone ls virteche:my-bucket rclone sync ./photos virteche:my-bucket/photos --progress
restic Backups
As root (sudo -i), make a password file first. restic encrypts everything with it, and without it the backups cannot be read:
install -m 600 /dev/null /root/.restic-password openssl rand -base64 32 > /root/.restic-password
export AWS_ACCESS_KEY_ID=YOUR_KEY export AWS_SECRET_ACCESS_KEY=YOUR_SECRET export AWS_DEFAULT_REGION=us-west export RESTIC_REPOSITORY=s3:https://s3.us-west.virteche.com/my-bucket/restic export RESTIC_PASSWORD_FILE=/root/.restic-password restic init restic backup /etc /home /var/www restic forget --keep-daily 7 --keep-weekly 4 --prune
restic encrypts before uploading, so the storage only ever holds encrypted data. Keep a copy of the password somewhere other than the server you are backing up, such as a password manager: if the server is lost, you need it to restore.
SDKs
Every S3 SDK takes an endpoint and a path-style flag — for example forcePathStyle: true in the JavaScript SDK v3 or config=Config(s3={"addressing_style": "path"}) in boto3 — plus the region us-west.
Object Storage or a Storage Box?
If your tools speak SSH — rsync, Borg, SFTP — a storage box is simpler. The comparison guide goes through it.