Быстрый старт

Endpoint API — https://vk-msk1.larchdock.com. Хранилище совместимо с Amazon S3, поэтому подойдёт любой S3-клиент. Создайте ключи доступа в консоли и настройте CLI:

# настройка профиля
$ aws configure --profile kitezh
AWS Access Key ID     [None]: AKKIXXXXXXXXXXXXXX
AWS Secret Access Key [None]: ****

# создать бакет и залить файл
$ aws s3 mb s3://media-prod --endpoint-url https://vk-msk1.larchdock.com
$ aws s3 cp clip.ts s3://media-prod/vault/objects/ --endpoint-url https://vk-msk1.larchdock.com

Аутентификация

Запросы подписываются по алгоритму AWS Signature v4. Каждый ключ состоит из Access Key ID и Secret Access Key; секрет показывается один раз при создании. Ротацию ключей можно настроить в консоли.

S3 API

Поддерживаются основные операции объектного хранилища:

ОперацияМетодОписание
PutObjectPUT /{bucket}/{key}Загрузка объекта
GetObjectGET /{bucket}/{key}Скачивание объекта
ListObjectsV2GET /{bucket}Листинг префикса
DeleteObjectDELETE /{bucket}/{key}Удаление объекта
CreateMultipartUploadPOST /{bucket}/{key}?uploadsМногочастная загрузка

Пример: скачивание объекта

$ curl -O https://vk-msk1.larchdock.com/media-prod/vault/objects/clip.ts

Подписанные ссылки

Временная ссылка выдаёт доступ к объекту без раскрытия ключей. Срок задаётся в секундах:

$ ktz presign media-prod/vault/objects/clip.ts --expires 3600
https://vk-msk1.larchdock.com/vault/objects/clip.ts?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600&X-Amz-Signature=…

SDK

Python (boto3):

import boto3
s3 = boto3.client("s3", endpoint_url="https://vk-msk1.larchdock.com")
s3.upload_file("clip.ts", "media-prod", "vault/objects/clip.ts")

Лимиты

ПараметрЗначение
Максимальный размер объекта5 ТБ (multipart)
Размер части multipartот 5 МБ
Запросов в секунду на бакет3 500 PUT / 5 500 GET
Длина ключа объекта1 024 байта

Регионы

Данные размещаются в 5 регионах. Основной регион записи — Москва; доставка выполняется из ближайшего PoP автоматически.

Москва · Тверь · Ярославль · Рязань · Калуга.

Для записи в конкретную точку присутствия используйте региональный endpoint — объект остаётся в этом регионе, доставка идёт из ближайшего PoP:

РегионКодEndpoint
Москваru-msk-1https://vk-msk1.larchdock.com
Тверьru-tvr-1https://tvr.kitezh.cloud
Ярославльru-yar-1https://yar.kitezh.cloud
Рязаньru-rzn-1https://rzn.kitezh.cloud
Калугаru-klg-1https://klg.kitezh.cloud
Москва, резервru-msk-2https://msk2.kitezh.cloud
Ярославль, резервru-yar-2https://yar2.kitezh.cloud

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