Все разделы

Подключение к S3

AWS CLI, rclone, boto3: endpoint, ключи, примеры команд.

Credentials

На странице хранилища (S3 → выберите хранилище → Credentials):

ПолеНазначение
EndpointURL API, например https://s3-nl.hostkey.com
Access KeyПубличная часть ключа
Secret KeyСекретная часть — не публикуйте

Secret Key показывается только в кабинете. Не коммитьте в git и не отправляйте в мессенджерах.

AWS CLI

Установите AWS CLI v2. Профиль:

aws configure --profile imbacloud
# AWS Access Key ID: <Access Key из кабинета>
# AWS Secret Access Key: <Secret Key>
# Default region name: nl (или ru)
# Default output format: json

Список бакетов (подставьте свой endpoint):

aws s3 ls --profile imbacloud --endpoint-url https://s3-nl.hostkey.com

Загрузка файла:

aws s3 cp ./backup.tar.gz s3://my-backups/backup.tar.gz \
  --profile imbacloud --endpoint-url https://s3-nl.hostkey.com

Скачивание:

aws s3 cp s3://my-backups/backup.tar.gz ./ \
  --profile imbacloud --endpoint-url https://s3-nl.hostkey.com

rclone

~/.config/rclone/rclone.conf:

[imbacloud]
type = s3
provider = Other
access_key_id = YOUR_ACCESS_KEY
secret_access_key = YOUR_SECRET_KEY
endpoint = https://s3-nl.hostkey.com
acl = private

Синхронизация папки:

rclone sync /var/backups imbacloud:my-backups/daily --progress

Python (boto3)

import boto3

s3 = boto3.client(
    "s3",
    endpoint_url="https://s3-nl.hostkey.com",
    aws_access_key_id="YOUR_ACCESS_KEY",
    aws_secret_access_key="YOUR_SECRET_KEY",
    region_name="nl",
)

for obj in s3.list_objects_v2(Bucket="my-backups").get("Contents", []):
    print(obj["Key"], obj["Size"])

S3 Browser / Cyberduck

  • Account type: S3 Compatible Storage (не Amazon S3!)
  • Endpoint: s3-nl.hostkey.com (без https:// в некоторых клиентах)
  • Access Key ID / Secret Access Key — из кабинета
  • SSL/TLS — включён

CORS (веб-приложения)

Если браузер обращается к bucket напрямую — настройте CORS на bucket через AWS CLI (PutBucketCors) или поддержку.

Типовые ошибки

ОшибкаРешение
403 ForbiddenНеверный Secret Key или endpoint
NoSuchBucketОпечатка в имени бакета
Клиент идёт на amazonaws.comЯвно укажите --endpoint-url или endpoint в конфиге
SignatureDoesNotMatchПроверьте ключи, используйте Signature V4
Для RU-хранилища endpoint из кабинета — https://s3-ru.hostkey.ru (Hostkey отдаёт его через API).