Connect Selectel S3 to ClearML
In ClearML, you can connect Selectel S3 to store datasets, results, and experiment artifacts.
-
Open the ClearML configuration file
clearml.conf. Update theapi,awsanddevelopment:blocks:api {...files_server: s3://s3.<pool>.storage.selcloud.ru:443/<container_name>...}...sdk {...aws {s3 {host: "s3.storage.selcloud.ru:443"region: "ru-1"key: "<access_key>"secret: "<secret_key>"use_credentials_chain: falsecredentials: [{bucket: "<container_name>"secure: true}]}boto3 {pool_connections: 512max_multipart_concurrency: 16}}...}......development {...default_output_uri: "s3://s3.<pool>.storage.selcloud.ru:443/<container_name>/<path>"...}...Specify:
<container_name>— the name of the S3 bucket where datasets and artifacts will be stored. You can find the name in the control panel: in the top menu, click Products → S3 → Buckets;<access_key>— the Access Key ID from an S3 key issued to the user;<secret_key>— the Secret Access Key from an S3 key issued to the user.<path>— the prefix in S3;<pool>— the pool where S3 is located (for example,ru-1).
-
To upload datasets to ClearML Server, run a python script.
Sample script for loading a single dataset:
# Create dataset via Dataset classfrom clearml import Datasetdataset = Dataset.create(dataset_name="<dataset_name>",dataset_project="<project_name>",output_uri="s3://s3.storage.selcloud.ru:443/<container_name>/<path>",)# Add files to datasetdataset.add_files(path="<local_path_to_dataset>",)# Upload dataset to ClearML Serverdataset.upload()# Commit dataset changesdataset.finalize()Specify: