Endpoint API — https://kazan.grafitmedia.ru. Хранилище совместимо с Amazon S3, поэтому подойдёт любой S3-клиент. Создайте ключи доступа в консоли и настройте CLI:
# настройка профиля $ aws configure --profile grafit AWS Access Key ID [None]: AKGRXXXXXXXXXXXXXX AWS Secret Access Key [None]: **** # создать бакет и залить файл $ aws s3 mb s3://media-prod --endpoint-url https://kazan.grafitmedia.ru $ aws s3 cp clip.ts s3://media-prod/vault/assets/deliver/ --endpoint-url https://kazan.grafitmedia.ru
Запросы подписываются по алгоритму AWS Signature v4. Каждый ключ состоит из Access Key ID и Secret Access Key; секрет показывается один раз при создании. Ротацию ключей можно настроить в консоли.
Поддерживаются основные операции объектного хранилища:
| Операция | Метод | Описание |
|---|---|---|
| PutObject | PUT /{bucket}/{key} | Загрузка объекта |
| GetObject | GET /{bucket}/{key} | Скачивание объекта |
| ListObjectsV2 | GET /{bucket} | Листинг префикса |
| DeleteObject | DELETE /{bucket}/{key} | Удаление объекта |
| CreateMultipartUpload | POST /{bucket}/{key}?uploads | Многочастная загрузка |
$ curl -O https://kazan.grafitmedia.ru/media-prod/vault/assets/deliver/clip.ts
Временная ссылка выдаёт доступ к объекту без раскрытия ключей. Срок задаётся в секундах:
$ grafit presign media-prod/vault/assets/deliver/clip.ts --expires 3600 https://kazan.grafitmedia.ru/vault/assets/deliver/clip.ts?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600&X-Amz-Signature=…
Python (boto3):
import boto3 s3 = boto3.client("s3", endpoint_url="https://kazan.grafitmedia.ru") s3.upload_file("clip.ts", "media-prod", "vault/assets/deliver/clip.ts")
| Параметр | Значение |
|---|---|
| Максимальный размер объекта | 5 ТБ (multipart) |
| Размер части multipart | от 5 МБ |
| Запросов в секунду на бакет | 3 500 PUT / 5 500 GET |
| Длина ключа объекта | 1 024 байта |
Данные размещаются в 8 регионах. Основной регион записи — Казань; доставка выполняется из ближайшего PoP автоматически.
Казань · Самара · Нижний Новгород · Уфа · Пермь · Ижевск и ещё 2 PoP.
Для записи в конкретную точку присутствия используйте региональный endpoint — объект остаётся в этом регионе, доставка идёт из ближайшего PoP:
| Регион | Код | Endpoint |
|---|---|---|
| Казань |
ru-kzn-1
|
https://kazan.grafitmedia.ru
|