---
title: 'Подключить S3 к ClearML'
sidebar_position: 2
description: 'Как подключить S3 Selectel к ClearML для хранения датасетов, результатов и артефактов экспериментов'
---

import Formbricks from '@theme/MDXComponents/Formbricks'

# Подключить S3 Selectel к ClearML

В ClearML для хранения датасетов, результатов и артефактов экспериментов можно подключить [S3 Selectel](/s3/).

1. Откройте конфигурационный файл ClearML `clearml.conf`. Измените блоки `api`, `aws` и `development`:

   ```yaml
   api {
     ...
     files_server: s3://s3.<pool>.storage.selcloud.ru:443/<container_name>
     ...
   }
   ```

   ```yaml
   ...
   sdk {
   ...
       aws {
         s3 {
           host: "s3.storage.selcloud.ru:443"
           region: "ru-1"
           key: "<access_key>"
           secret: "<secret_key>"
           use_credentials_chain: false
           credentials: [{
               bucket: "<container_name>"
               secure: true
           }]
         }
         boto3 {
           pool_connections: 512
           max_multipart_concurrency: 16
         }
       }
   ...
   }
   ...
   ```

   ```yaml
   ...
   development {
     ...
     default_output_uri: "s3://s3.<pool>.storage.selcloud.ru:443/<container_name>/<path>"
     ...
   }
   ...
   ```

   Укажите:

   * `<container_name>` — имя бакета в S3, в котором будут храниться датасеты и артефакты. Имя можно посмотреть в [панели управления](https://my.selectel.ru/storage/): в верхнем меню нажмите **Продукты** → **S3** → **Бакеты**;
   * `<access_key>` — Access Key ID из [S3-ключа](/access-control/manage/edit-user-data-or-role.mdx#issue-s3-key), выданного пользователю;
   * `<secret_key>` — Secret Access Key из [S3-ключа](/access-control/manage/edit-user-data-or-role.mdx#issue-s3-key), выданного пользователю;
   * `<path>` — префикс в S3;
   * `<pool>` — [пул](/infrastructure/locations.mdx#pool), в котором находится S3 (например, `ru-1`).

2. Чтобы загрузить датасеты в ClearML Server, запустите python-скрипт.

   Пример скрипта для загрузки одного датасета:

   ```python
   # Создать датасет через класс Dataset
   from clearml import Dataset
   dataset = Dataset.create(
       dataset_name="<dataset_name>",
       dataset_project="<project_name>",
       output_uri="s3://s3.storage.selcloud.ru:443/<container_name>/<path>",
   )

   # Добавить файлы в датасет
   dataset.add_files(
       path="<local_path_to_dataset>",
   )

   # Загрузить датасет в ClearML Server
   dataset.upload()

   # Закоммитить изменения в датасете
   dataset.finalize()
   ```

   Укажите:

   * `<dataset_name>` — имя датасета, отобразится в [WebApp](https://clear.ml/docs/latest/docs/webapp/webapp_home);
   * `<project_name>` — имя проекта, отобразится в [WebApp](https://clear.ml/docs/latest/docs/webapp/webapp_home);
   * `<container_name>/<path>` — префикс в S3 из шага 1;
   * `<local_path_to_dataset>` — путь до датасета на локальной машине.

<Formbricks />
