# Объектное хранилище S3 (https://docs.h3llo.cloud/s3)

> Адрес, регион, ключи доступа, бакеты, публичный доступ, подписанные ссылки и настройка клиентов.

Объектное хранилище совместимо с API Amazon S3. С ним работают aws cli, s3cmd, rclone и SDK для S3.

## Параметры подключения [#параметры-подключения]

| Параметр | Значение |
|---|---|
| Адрес (endpoint) | `https://storage.h3llo.cloud` |
| Регион | `default` |
| Адресация | только path-style: `https://storage.h3llo.cloud/<бакет>/<объект>` |
| Ключи | в разделе S3 проекта: «Публичный ключ» (access key) и «Приватный ключ» (secret key) |

У проекта одна пара ключей. Она создаётся при первом открытии раздела S3. Ключи дают доступ ко всем бакетам
проекта — храните их как пароль.

## Бакеты [#бакеты]

«Создать бакет» → «Имя бакета». Имя: 3–63 символа, строчные латинские буквы, цифры, точка и дефис; начинается и
заканчивается буквой или цифрой. Имена уникальны в пределах проекта.

Версионирование объектов не поддерживается.

### Публичный бакет [#публичный-бакет]

Переключатель «Публичный» открывает всем чтение объектов бакета (`s3:GetObject`). Ссылки на объекты показаны в
консоли.

### Подписанные ссылки [#подписанные-ссылки]

Чтобы дать временный доступ к одному объекту, создайте подписанную ссылку в консоли или клиентом:

```bash
aws s3 presign s3://my-bucket/report.pdf --expires-in 3600
```

## aws cli [#aws-cli]

```ini title="~/.aws/config"
[profile h3]
region = default
endpoint_url = https://storage.h3llo.cloud
s3 =
    addressing_style = path
```

```ini title="~/.aws/credentials"
[h3]
aws_access_key_id = <публичный ключ>
aws_secret_access_key = <приватный ключ>
```

```bash
export AWS_PROFILE=h3
aws s3 mb s3://my-bucket
aws s3 cp ./backup.tar.gz s3://my-bucket/
aws s3 ls s3://my-bucket/
```

## s3cmd [#s3cmd]

```ini title="~/.s3cfg"
access_key = <публичный ключ>
secret_key = <приватный ключ>
host_base = storage.h3llo.cloud
host_bucket = storage.h3llo.cloud
use_https = True
bucket_location = default
```

## rclone [#rclone]

```ini title="~/.config/rclone/rclone.conf"
[h3]
type = s3
provider = Ceph
access_key_id = <публичный ключ>
secret_access_key = <приватный ключ>
endpoint = https://storage.h3llo.cloud
region = default
force_path_style = true
```

## Возможности и ограничения [#возможности-и-ограничения]

- Поддерживается: загрузка частями (multipart upload), подписанные ссылки, публичные бакеты.
- Не поддерживается: версионирование, правила жизненного цикла, блокировка объектов (object lock), шифрование на
  стороне сервера, хостинг статических сайтов, свои домены.
- Объём хранилища ограничен [квотой](https://docs.h3llo.cloud/quotas) рабочего пространства.

Оплачиваются хранение и исходящий трафик (чтение объектов) — см. [тарифы](https://h3llo.cloud/tariffs).

## Цены [#цены]

Цены объектного хранилища и что входит в стоимость — в разделе [Цены и тарификация](https://docs.h3llo.cloud/pricing#s3).
