s3.php¶
Модуль управления S3-хранилищем: создание и удаление аккаунтов, управление бакетами и файлами, получение статистики использования, управление тарифными планами и биллингом.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
create_account | создание аккаунта S3 | Создает новый S3-аккаунт для клиента, привязывает тарифный план, создает бакет и оформляет заказ в биллинге. |
create_bucket | создание бакета S3 | Создает новый бакет с указанным именем для существующего S3-аккаунта клиента. |
create_order | создание заказа на S3-аккаунт | Создает новый заказ на S3-аккаунт по указанному тарифному плану, валидирует имя бакета, проверяет лимиты и кредиты, создает пользователя и сервис в биллинге. |
delete_account | удаление S3 аккаунта | Полностью удаляет S3 аккаунт пользователя, включая все связанные бакеты и данные. |
delete_bucket | удаление бакета S3 | Удаляет указанный бакет из S3-аккаунта клиента после проверки прав доступа и владения. |
delete_file | удаление файла | Удаляет указанный файл из S3-бакета пользователя. |
delete_payment_account | отмена оплаченного аккаунта S3 | Инициирует процесс отмены оплаченного S3-аккаунта, устанавливая дату отмены в биллинговой системе. |
get_buckets | получение списка бакетов | Возвращает список бакетов S3 для указанного пользователя, включая информацию об использовании хранилища, пропускной способности, снапшотах и ключи доступа. |
get_buckets_rmq | получение списка бакетов через очередь сообщений | Возвращает список бакетов S3 для указанного пользователя, включая информацию об использовании хранилища, пропускной способности, снапшоты и учетные данные доступа. |
get_files | получение списка файлов | Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации и поиска. |
get_users | получение списка пользователей S3 | Возвращает список S3-аккаунтов с информацией о сервисе, трафике и использовании хранилища. Для администраторов поддерживает фильтрацию и пагинацию. |
history | получение истории изменений | Возвращает историю изменений для указанного S3-плана или аккаунта по ID. |
list_plans | получение списка тарифных планов S3 | Возвращает список доступных тарифных планов S3. Для клиентов скрывает неактивные планы (если нет тега s3_test), для администраторов может вернуть конкретный план по ID. |
show_key | получение ключа доступа | Возвращает расшифрованный ключ доступа (access_key или secret_key) для указанного S3-аккаунта. |
s3/cancel_payment_account_deletion¶
Отменяет запланированное удаление оплаченного S3-аккаунта, восстанавливая его статус и дату окончания действия.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: cancel_payment_account_deletion |
| token | ✅ | string | Токен авторизации для проверки прав доступа |
| s3uid | ✅ | string | Уникальный идентификатор S3-аккаунта, для которого отменяется удаление |
| id | ❌ | int | ID клиента (используется администраторами для управления аккаунтами других пользователей) |
Пример запроса
Пример успешного ответа
s3/create_account¶
Создает новый S3-аккаунт для клиента, привязывает тарифный план, создает бакет и оформляет заказ в биллинге.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_account |
| token | ✅ | string | Токен авторизации пользователя |
| plan_id | ✅ | int | Идентификатор тарифного плана S3 |
| bucket_name | ✅ | string | Имя создаваемого бакета |
| location | ❌ | string | Локация хранилища (по умолчанию NL) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "s3/create_order: missing auth token" }
```
s3/create_bucket¶
Создает новый бакет с указанным именем для существующего S3-аккаунта клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_bucket |
| token | ✅ | string | Токен авторизации пользователя |
| s3uid | ✅ | string | Уникальный идентификатор S3-аккаунта пользователя |
| bucket_name | ✅ | string | Имя создаваемого бакета (должно быть уникальным и соответствовать правилам валидации) |
Пример запроса
Пример успешного ответа
s3/create_order¶
Создает новый заказ на S3-аккаунт по указанному тарифному плану, валидирует имя бакета, проверяет лимиты и кредиты, создает пользователя и сервис в биллинге.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_order |
| token | ✅ | string | Токен авторизации пользователя |
| plan_id | ✅ | int | ID тарифного плана S3 |
| bucket_name | ✅ | string | Имя создаваемого бакета (должно быть валидным) |
| location | ✅ | string | Код локации (например, NL, DE, US) |
Пример запроса
Пример успешного ответа
s3/delete_account¶
Полностью удаляет S3 аккаунт пользователя, включая все связанные бакеты и данные.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_account |
| token | ✅ | string | Токен авторизации для проверки прав доступа |
| id | ❌ | int | ID клиента (для администраторов, если требуется удаление аккаунта другого пользователя) |
| s3uid | ✅ | string | Уникальный идентификатор S3 пользователя (s3uid) для удаления |
Пример запроса
s3/delete_bucket¶
Удаляет указанный бакет из S3-аккаунта клиента после проверки прав доступа и владения.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_bucket |
| token | ✅ | string | Токен авторизации пользователя |
| id | ❌ | int | ID клиента (для администраторов) |
| s3uid | ✅ | string | Уникальный идентификатор S3-аккаунта пользователя |
| bucket_name | ✅ | string | Имя бакета, который необходимо удалить |
Пример запроса
Пример успешного ответа
s3/delete_file¶
Удаляет указанный файл из S3-бакета пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_file |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3-аккаунта пользователя |
| bucket_name | ✅ | string | Имя бакета, из которого удаляется файл |
| filename | ✅ | string | Полное имя файла (ключ) для удаления |
Пример запроса
Пример успешного ответа
Примеры ошибок
s3/delete_payment_account¶
Инициирует процесс отмены оплаченного S3-аккаунта, устанавливая дату отмены в биллинговой системе.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_payment_account |
| token | ✅ | string | Токен авторизации пользователя |
| s3uid | ✅ | string | Уникальный идентификатор S3-аккаунта для отмены |
Пример запроса
Пример успешного ответа
s3/get_buckets¶
Возвращает список бакетов S3 для указанного пользователя, включая информацию об использовании хранилища, пропускной способности, снапшотах и ключи доступа.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_buckets |
| token | ✅ | string | Токен авторизации пользователя |
| s3uid | ✅ | string | Уникальный идентификатор S3 пользователя |
| id | ❌ | integer | ID клиента (для администраторов) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets",
"message": [
{
"name": "my-bucket-01",
"usage": 1073741824,
"created_at": "2024-01-15T10:30:00Z"
},
{
"name": "backup-data",
"usage": 5368709120,
"created_at": "2024-02-20T14:45:00Z"
}
],
"bandwidth": 1048576,
"usage_storage": 6442450944,
"quota": 5000000000000,
"snapshots": [
{
"bandwidth_usage": 1048576,
"storage_usage": 6442450944,
"created_at": "2024-05-20 12:00:00"
}
],
"access_key": "4KCTQIAZ1GLPB8TFIMTO",
"secret_key": "5wsy0Sd1nYyyACKWYQPhVqbX36t2gDjdVsnv7n8D",
"endpoint": "https://s3.nl.hostkey.ru"
}
s3/get_buckets_rmq¶
Возвращает список бакетов S3 для указанного пользователя, включая информацию об использовании хранилища, пропускной способности, снапшоты и учетные данные доступа.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_buckets_rmq |
| token | ✅ | string | Токен авторизации для проверки прав доступа |
| s3uid | ✅ | string | Уникальный идентификатор пользователя S3 (S3UID) |
| id | ❌ | integer | Идентификатор клиента (используется администраторами для просмотра чужих аккаунтов) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets_rmq",
"message": [
{
"name": "my-bucket-01",
"usage": 1073741824,
"count": 150,
"created": "2023-10-15T10:30:00Z"
},
{
"name": "backup-data",
"usage": 5368709120,
"count": 42,
"created": "2023-11-20T14:45:00Z"
}
],
"bandwidth": 1048576,
"usage_storage": 6442450944,
"quota": 107374182400,
"snapshots": [
{
"bandwidth_usage": 1048576,
"storage_usage": 6442450944,
"created_at": "2024-01-15 12:00:00"
}
],
"access_key": "4KCTQIAZ1GLPB8TFIMTO",
"secret_key": "5wsy0Sd1nYyyACKWYQPhVqbX36t2gDjdVsnv7n8D",
"endpoint": "https://s3.nl.hostkey.ru"
}
s3/get_files¶
Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации и поиска.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_files |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 пользователя |
| bucket_name | ✅ | string | Имя бакета S3 |
| continuation_token | ❌ | string | Токен для продолжения пагинации (если есть) |
| max_keys | ❌ | int | Максимальное количество файлов для возврата (по умолчанию 50, максимум 100) |
| search | ❌ | string | Строка для поиска в именах файлов |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_files",
"files": [
{
"key": "folder/subfolder/file.txt",
"original_key": "folder/subfolder/file.txt",
"size": 1024,
"last_modified": "2024-01-15T10:30:00Z",
"etag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
"storage_class": "STANDARD"
},
{
"key": "image.png",
"original_key": "image.png",
"size": 2048576,
"last_modified": "2024-01-14T08:20:00Z",
"etag": "\"e99a18c428cb38d5f260853678922e03\"",
"storage_class": "STANDARD"
}
],
"folders": [
{
"key": "folder/",
"size": 0,
"last_modified": "2024-01-15T10:30:00Z"
},
{
"key": "folder/subfolder/",
"size": 0,
"last_modified": "2024-01-15T10:30:00Z"
}
],
"next_token": "eyJDb250aW51YXRpb25Ub2tlbiI6IkZhbHNlIiwiQ29udGVudCI6eyJrZXkiOiJmb2xkZXIvc3ViZm9sZGVyL2ZpbGUudHh0In19"
}
s3/get_users¶
Возвращает список S3-аккаунтов с информацией о сервисе, трафике и использовании хранилища. Для администраторов поддерживает фильтрацию и пагинацию.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_users |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID клиента (для администратора) или ID S3-аккаунта |
| plan_id | ❌ | int | ID тарифного плана S3 |
| s3uid | ❌ | string | Уникальный идентификатор пользователя S3 |
| ❌ | string | Email пользователя для фильтрации | |
| billing | ❌ | string | Биллинговая система для фильтрации |
| bucket_name | ❌ | string | Имя бакета для поиска пользователя |
| storage_type | ❌ | string | Тип хранилища (Standard, Cold и т.д.) |
| location | ❌ | string | Локация (код региона, например NL) |
| period_from | ❌ | string | Начальная дата периода для статистики трафика (YYYY-MM-DD) |
| period_to | ❌ | string | Конечная дата периода для статистики трафика (YYYY-MM-DD) |
| order | ❌ | string | Поле для сортировки (total_traffic_period_gb, total_storage_peak_gb) |
| order_by | ❌ | string | Направление сортировки (ASC, DESC) |
| limit | ❌ | int | Количество записей для возврата |
| offset | ❌ | int | Смещение для пагинации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_users",
"s3_users": [
{
"id": 123,
"s3uid": "7VT1xrnQbWSIQhoOrAngpLUL5reuFcXY",
"email": "user@example.com",
"billing": "whmcs",
"region": "NL",
"storage_type": "Standard",
"quota": 5000,
"traffic": 12.5,
"storage_usage": 45.2,
"service": {
"next_commit_date": "2024-02-15",
"cancellation_date": null,
"termination_date": null,
"termination_unix_date": null,
"cancellation_unix_date": null,
"status": "active"
}
}
]
}
Примеры ошибок
``` { "code": -1, "message": "s3/get_users: customer not found" }
```
s3/history¶
Возвращает историю изменений для указанного S3-плана или аккаунта по ID.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: history |
| id | ❌ | int | Идентификатор S3-плана или аккаунта для получения истории |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "history",
"data": [
{
"id": 1542,
"entity_id": 12,
"entity_type": "s3_plan",
"action": "update",
"description": "Обновлен тарифный план",
"user_id": 5,
"created_at": "2024-01-15T10:30:00Z"
},
{
"id": 1541,
"entity_id": 12,
"entity_type": "s3_plan",
"action": "create",
"description": "Создан новый тарифный план",
"user_id": 5,
"created_at": "2024-01-10T08:15:00Z"
}
]
}
s3/list_plans¶
Возвращает список доступных тарифных планов S3. Для клиентов скрывает неактивные планы (если нет тега s3_test), для администраторов может вернуть конкретный план по ID.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list_plans |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID конкретного плана (работает только для администраторов, возвращает один объект вместо списка) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "list_plans",
"plans": [
{
"id": 1,
"name": "S3 Standard NL",
"active": 1,
"quota": 5000,
"storage_type": "standard",
"bandwidth_limit": 0,
"locations": "NL,DE",
"monthly_rub": 1500,
"monthly_eur": 15.0,
"monthly_usd": 16.5,
"traffic_overage_price_rub": 0.05,
"traffic_overage_price_eur": 0.0005,
"traffic_overage_price_usd": 0.0006,
"storage_overage_price_rub": 0.01,
"storage_overage_price_eur": 0.0001,
"storage_overage_price_usd": 0.0001,
"price": {
"monthly_rub": 1500,
"monthly_eur": 15.0,
"monthly_usd": 16.5
},
"tags": []
}
]
}
s3/show_key¶
Возвращает расшифрованный ключ доступа (access_key или secret_key) для указанного S3-аккаунта.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show_key |
| token | ✅ | string | Токен авторизации пользователя |
| s3uid | ✅ | string | Уникальный идентификатор S3-аккаунта |
| s3_key | ✅ | string | Тип возвращаемого ключа: 'access_key' или 'secret_key' |
Пример запроса