# Управление хранилищем

## Создать аккаунт

При добавлении хранилища выполняется создание аккаунта S3 и ключей доступа.

::: tip Информация
В момент создания нового хранилища сохраните ключи и секреты (токены) доступа. Данная информация не хранится на серверах Vega. В случае утери ключей доступа все данные хранилища будут недоступны.
:::

1. Перейдите в консоль управления.
2. Откройте **Объектное хранилище**.
3. Нажмите **Добавить хранилище**.
4. Заполните параметры хранилища:
   - **Регион**: выбрать из списка.
   - **Название аккаунта**: введите название аккаунта. <!--Есть правила нейминга?-->
   - **Размер хранилища**: введите значение в Гбайтах, размер хранилища ограничен квотой.
5. Нажмите **Создать**.
6. В открывшемся окне скопируйте ключи и сохраните их в надежном месте.
7. Нажмите **Закрыть**.

Аккаунт S3 будет добавлен в разделе **Объектное хранилище**. Далее необходимо [подключиться к хранилищу c помощью утилиты S3cmd](../storage-instructions/s3-connect/s3cmd.md) или [WinSCP](../storage-instructions/s3-connect/winscp.md).

## Удалить аккаунт

::: warning Важно
Перед удалением аккаунта удалите бакеты вручную.
:::

1. Перейдите в консоль управления.
2. Откройте **Объектное хранилище**.
3. Найдите нужное хранилище.
5. Нажмите &#10247; и выберите **Удалить**.
6. В открывшемся окне подтвердите операцию:
   - Скопируйте предложенный текст.
   - Нажмите **Удалить**.

## Управление жизненным циклом объектов в бакете

Управление жизненным циклом объектов позволяет настроить автоматическое удаление отдельных объектов или групп объектов по заданным условиям и расписанию.

Для управления жизненными циклами с помощью S3cmd используется [конфигурация в формате XML](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html).

::: tabs
 
== Загрузить политику

```sh
s3cmd setlifecycle bucket-lifecycle.xml s3://bucket
```

== Получить политику

```sh
s3cmd getlifecycle s3://bucket
```

== Удалить политику

```sh
s3cmd dellifecycle s3://bucket
```
:::

## Управление доступом (ACL)

Access Control List (ACL) — список управления доступом, который определяет, список пользователей для доступа к файлам или бакету и список допустимых или запрещенных операции.

Для управления доступом в S3 хранилище можно использовать команды из [документации S3cmd](https://s3tools.org/s3cmd).

## Монтирование бакета

Монтирование бакета позволит управлять содержимым S3-хранилища через интерфейс файловой системы. Бакет объектного хранилища монтируется через [FUSE](https://ru.wikipedia.org/wiki/FUSE_(%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%8F%D0%B4%D1%80%D0%B0)).

В инструкции рассмотрено разовое монтирование контейнера. В этом случае при каждой перезагрузке системы контейнер будет размонтирован. Потребуется выполнить монтирование контейнера вручную после перезагрузки системы.

::: tabs
== GeeseFS
1. Установите клиент GeeseFS.
2. Сделайте файл geesefs исполняемым и поместите его в директорию `/bin`:

   ```sh
   chmod 700 geesefs-linux-amd64
   mv geesefs-linux-amd64 /bin/geesefs
   ```

3. [Используйте ключ доступа, полученный при создании аккаунта](#создать-аккаунт), и поместите его в директорию `~/.aws/credentials`:

   ```
   [default]
   aws_access_key_id = <Access key>
   aws_secret_access_key = <secret>
   ```
4. Создайте директорию, в которой будет отображаться содержимое бакета. Например, `/mnt/s3`.
5. Для монтирования бакета выполните команду: 

  ```sh 
  /bin/geesefs --endpoint <endpoint s3> <имя бакета> /mnt/s3/
  ```
== S3fs
1. Установите клиент S3fs:

   ```sh
   apt install s3fs
   ```
2. Cохраните [ключ доступа и секретный ключ, полученные при создании аккаунта](#создать-аккаунт) в файле `~/.passwd-s3fs`:

   ```sh
   echo <идентификатор_ключа>:<секретный_ключ> > ~/.passwd-s3fs
   ```
3. Ограничьте доступ к файлу `~/.passwd-s3fs`:

   ```sh
   chmod 600 ~/.passwd-s3fs
   ```
4. Для монтирования бакета выполните команду:

   ```sh
   s3fs <имя_бакета> <путь_к_директории> -o passwd_file=~/.passwd-s3fs  -o url=<адрес_endpoint> -o use_path_request_style
   ```

:::

Для проверки монтирования бакета выполните команду:

```sh
df-h
```

### Размонтировать бакет

Для размонтирования бакета выполните команду:

```sh
umount <путь_к_директории>
```