Методы для работы с хранилищем S3

См.также

Актуальная спецификация (автодокументация по методам).

Набор методов для работы с S3:

Описание методов

Метод API

HTTP-метод

Описание

Get S3 Credentials

GET

Возвращает креды публичного бакета, если публичный бакет не создан, то возвращаются креды приватного бакета

Save S3 Credentials

POST

Сохраняет креды бакета S3

S3 Copy Job

POST

Запускает задачу копирования между S3 и NFS

Подробнее см. в спецификации.

Сохранение настроек доступа к S3 для аккаунта пользователя

Сохранить настройки доступа к S3 для аккаунта пользователя (связанного с выданным токеном, который отправляется в запросе).

[POST]

HTTP HEADER
X-Api-Key = [client secret api key, individual for every namespace]

Authorization: [access_token value]
BODY
{

's3_namespace': <string>,

'access_key_id': <string>,

'security_key': <string>

}
Описание параметров

X-Api-Key — клиентский ключ доступа к API. Индивидуален для каждого аккаунта пользователя. Можно узнать, выполнив в Jupyter Notebook от лица пользователя следующие команды:

import os

print(os.environ['GWAPI_KEY'])
Описание параметров
  • Authorization — токен доступа, который характеризует пользователя, отправляющего запрос к API.

  • s3_namespace — неймспейс S3 бакета.

  • access_key_id — access key S3 бакета.

  • security_key — security key S3 бакета.

Результат
{

'error_code': '0',

'error_message': '',

'created_at' : <unixtimestamp>

}
Описание параметров
  • error_code — код ошибки.

  • error_message — сообщение об ошибке.

  • created_at — дата и время создания.

Перемещение файлов между S3 и локальным хранилищем кластера

Перемещение данных и файлов из S3-бакета в локальное хранилище кластера, откуда данными и файлами можно будет пользоваться в рамках запускаемых на кластере задач. И обратно — перемещение данных и файлов из локального хранилища в S3-бакет, откуда их можно будет скачать на устройства пользователя.

[POST]

HTTP HEADER
X-Api-Key = [client secret api key, individual for every namespace]

Authorization: [access_token value]
BODY
{

'src': <string>,

'dst': <string>

}
Описание параметров
  • X-Api-Key — клиентский ключ доступа к API. Индивидуален для каждого аккаунта пользователя. Можно узнать, выполнив в Jupyter Notebook от лица пользователя следующие команды:

    import os
    
    print(os.environ['GWAPI_KEY'])
    
  • Authorization — токен доступа, который характеризует пользователя, от чьего лица делается запрос к API.

  • src — путь к источнику данных/скриптов, которые нужно переместить (возможен как путь к бакету s3://bucket-name/, так и путь в локальном хранилище кластера /home/jovyan/).

  • dst — путь назначения, куда нужно переместить данные/скрипты (возможен как путь к бакету s3://bucket-name/, так и путь в локальном хранилище кластера /home/jovyan/).

Результат
{

'error_code': '0',

'error_message': '',

'status': '',

'process': <copy process name>

'started_at' : <unixtimestamp>

}
Описание параметров
  • error_code — код ошибки.

  • error_message — сообщение об ошибке.

  • status — статус задачи перемещения данных.

  • process — имя процесса.

  • started_at — дата и время начала задачи перемещения данных.