s3.php¶
Модуль управления S3-хранилищем: создание и удаление аккаунтов, управление бакетами и файлами, получение статистики использования, управление тарифными планами и биллингом.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
create_account | создание S3 аккаунта (заказа) | Создает новый S3 аккаунт на основе выбранного тарифного плана, проверяет лимиты бесплатных аккаунтов и кредиты пользователя, а также создает заказ в биллинговой системе. |
create_bucket | создание бакета S3 | Создает новый S3 bucket для существующего аккаунта пользователя. Требуется наличие активного s3uid, принадлежащего клиенту. |
create_order | создание заказа на S3 аккаунт | Создает новый S3 аккаунт (bucket) для пользователя, привязывает его к тарифному плану и оформляет заказ в биллинговой системе. |
delete_account | удаление аккаунта | Удаляет S3 аккаунт пользователя, аннулирует связанные сервисы и проводит аудит действий |
delete_bucket | удаление бакета S3 | Удаляет указанный S3 bucket, предварительно проверив его принадлежность пользователю и наличие в списке доступных бакетов. |
delete_file | удаление файла | Удаляет указанный файл из S3 бакета. Требуется валидный s3uid владельца аккаунта. |
delete_payment_account | удаление платежного аккаунта | Запрашивает отмену подписки и удаление S3 аккаунта. Если действие успешно, сервис переводится в статус отмены. |
get_buckets | получение списка бакетов | Возвращает список S3 бакетов, информацию о трафике и снапшотах для указанного аккаунта |
get_buckets_rmq | получение информации о бакетах через RMQ | Возвращает список бакетов пользователя, информацию об использовании хранилища (usage), данные биллинга и учетные данные доступа к S3. |
get_files | получение списка файлов в бакете | Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации через continuation token |
get_users | получение списка пользователей S3 | Возвращает список S3 аккаунтов с детальной информацией о тарифах, трафике и использовании хранилища. Поддерживает фильтрацию по plan_id, email, s3uid, billing и локации. |
history | получение истории событий S3 | Возвращает историю действий, связанных с конкретным ID (вероятно, аккаунтом или пользователем) |
list_plans | получение списков планов | Возвращает список доступных S3 планов с учетом налоговой ставки (VAT) и валюты пользователя. Для администраторов может возвращать конкретный план по ID. |
show_key | получение ключей доступа | Возвращает расшифрованный секретный ключ или публичный доступный ключ S3 для указанного аккаунта |
s3/cancel_payment_account_deletion¶
Отменяет процесс удаления S3-аккаунта, инициированный через запрос на удаление. Восстанавливает статус сервиса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: cancel_payment_account_deletion |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/create_account¶
Создает новый S3 аккаунт на основе выбранного тарифного плана, проверяет лимиты бесплатных аккаунтов и кредиты пользователя, а также создает заказ в биллинговой системе.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_account |
| token | ✅ | string | Токен авторизации |
| bucket_name | ✅ | string | Имя бакета для создания аккаунта |
| plan_id | ✅ | int | ID выбранного тарифного плана |
| location | ❌ | string | Локация (регион) размещения |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account was creating, however bucket create error - [error_details]" }
```
s3/create_bucket¶
Создает новый S3 bucket для существующего аккаунта пользователя. Требуется наличие активного s3uid, принадлежащего клиенту.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие метода |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта (s3uid) |
| bucket_name | ✅ | string | Имя создаваемого бакета |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/create_order¶
Создает новый S3 аккаунт (bucket) для пользователя, привязывает его к тарифному плану и оформляет заказ в биллинговой системе.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_order |
| token | ✅ | string | Токен авторизации |
| bucket_name | ✅ | string | Имя создаваемого бакета |
| plan_id | ✅ | int | ID выбранного тарифного плана |
| location | ❌ | string | Локация (регион) хранения данных. По умолчанию NL |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account was creating, however bucket create error - [ошибка]" }
```
s3/delete_account¶
Удаляет S3 аккаунт пользователя, аннулирует связанные сервисы и проводит аудит действий
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID пользователя (для администратора) |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
| reason | ❌ | string | Причина удаления аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/delete_bucket¶
Удаляет указанный S3 bucket, предварительно проверив его принадлежность пользователю и наличие в списке доступных бакетов.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_bucket |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя удаляемого бакета |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Delete S3 bucket error: Bucket not found or access denied" }
```
s3/delete_file¶
Удаляет указанный файл из S3 бакета. Требуется валидный s3uid владельца аккаунта.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя бакета |
| filename | ✅ | string | Путь или имя файла для удаления |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Delete S3 file error: {error}. Response: {response}" }
```
s3/delete_payment_account¶
Запрашивает отмену подписки и удаление S3 аккаунта. Если действие успешно, сервис переводится в статус отмены.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID пользователя (для администратора) |
| s3uid | ✅ | string | UID S3 аккаунта |
| reason | ❌ | string | Причина удаления/отмены |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/get_buckets¶
Возвращает список S3 бакетов, информацию о трафике и снапшотах для указанного аккаунта
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_buckets |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (для админа) |
| s3uid | ✅ | string | S3 UID пользователя |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets",
"message": [
{
"Name": "my-bucket-name",
"usage": 1024,
"created_at": "2024-01-15T10:30:00Z"
}
],
"bandwidth": 512,
"quota": 5000,
"snapshot": {
"bandwidth_usage": 100,
"storage_usage": 500,
"created_at": "2024-05-20T12:00:00Z"
},
"metering": {},
"billing": {
"service_id": 123,
"currency": "EUR",
"period": {
"start": "2024-05-01T00:00:00Z",
"end": "2024-06-01T00:00:00Z"
},
"limits": {
"traffic_gb": 100,
"storage_gb": 500
},
"current_period": {
"traffic_used_gb": 10.5,
"storage_used_gb": 45.2,
"billed_traffic_gb": 0,
"billed_storage_gb": 0,
"billed_traffic_amount": 0,
"billed_storage_amount": 0
},
"overage": null,
"records": [],
"error": "billing_unavailable"
},
"access_key": "AKIAEXAMPLE123456789",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"endpoint": "s3.eu-central-1.amazonaws.com"
}
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/get_buckets_rmq¶
Возвращает список бакетов пользователя, информацию об использовании хранилища (usage), данные биллинга и учетные данные доступа к S3.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_buckets_rmq |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID клиента (для администратора) |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets_rmq",
"message": [
{
"name": "example-bucket",
"usage": 1024
},
{
"name": "test-bucket",
"usage": 512
}
],
"usage_storage": 1536,
"quota": 5000,
"metering": [
{
"date": "2024-05-01",
"traffic_gb": 10.5,
"storage_gb": 100
}
],
"billing": {
"service_id": 123,
"currency": "EUR",
"period": {
"start": "2024-05-01T00:00:00Z",
"end": "2024-06-01T00:00:00Z"
},
"limits": {
"traffic_gb": 100.0,
"storage_gb": 500
},
"current_period": {
"traffic_used_gb": 12.5,
"storage_used_gb": 45.0,
"billed_traffic_gb": 0,
"billed_storage_gb": 0,
"billed_traffic_amount": 0,
"billed_storage_amount": 0
},
"overage": null,
"records": [],
"error": "billing_unavailable"
},
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"endpoint": "s3.nl.hostkey.com"
}
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/get_files¶
Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации через continuation token
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_files |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя бакета |
| continuation_token | ❌ | string | Токен для получения следующей страницы результатов |
| max_keys | ❌ | int | Максимальное количество ключей (до 100) |
| search | ❌ | string | Поиск по имени файла |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "$module/get_files: S3 account not found for this customer", "details": { "s3uid": "unknown_id" } }
```
s3/get_users¶
Возвращает список S3 аккаунтов с детальной информацией о тарифах, трафике и использовании хранилища. Поддерживает фильтрацию по plan_id, email, s3uid, billing и локации.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_users |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (для админа) |
| plan_id | ❌ | integer | ID тарифного плана |
| s3uid | ❌ | string | S3 UID пользователя |
| ❌ | string | Поиск по email | |
| billing | ❌ | string | Метод биллинга (например, whmcs_itb) |
| location | ❌ | string | Локация поиска |
| storage_type | ❌ | string | Тип хранилища (Standard/Cold) |
| period_from | ❌ | string | Дата начала периода для расчета трафика (Y-m-d) |
| period_to | ❌ | string | Дата окончания периода для расчета трафика (Y-m-d) |
| offset | ❌ | integer | Смещение при пагинации |
| limit | ❌ | integer | Количество записей на страницу |
| order | ❌ | string | Поле для сортировки (total_traffic_period_gb или total_storage_peak_gb) |
| order_by | ❌ | string | Направление сортировки (ASC/DESC) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_users",
"s3_users": [
{
"id": 123,
"s3uid": "abc-123-def",
"email": "user@example.com",
"billing": "whmcs_itb",
"region": "NL",
"price": {
"EUR": 49.99,
"RUB": 5000
},
"traffic": 12.5,
"storage_usage": 150.0,
"service": {
"id": 456,
"entity_id": 123,
"rate": 49.99,
"status": "active",
"period_start": "2024-01-01T00:00:00Z",
"period_end": "2025-01-01T00:00:00Z"
}
}
]
}
Примеры ошибок
``` { "code": -1, "message": "customer not found" }
```
s3/history¶
Возвращает историю действий, связанных с конкретным ID (вероятно, аккаунтом или пользователем)
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: history |
| id | ✅ | integer | ID сущности для получения истории (например, s3uid пользователя) |
| token | ✅ | string | Токен авторизации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "\(module/\)action: invalid token, logout" }
```
s3/list_plans¶
Возвращает список доступных S3 планов с учетом налоговой ставки (VAT) и валюты пользователя. Для администраторов может возвращать конкретный план по ID.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list_plans |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID конкретного плана (для администраторов) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "list_plans",
"plans": [
{
"id": 1,
"name": "Standard Plan",
"active": 1,
"storage_type": "standard",
"location": "NL",
"price": {
"base_price": 10.0,
"EUR": 10.0,
"RUB": 950.0,
"USD": 11.0
},
"traffic_overage_price": {
"EUR": 0.05,
"RUB": 4.5,
"USD": 0.06
},
"storage_overage_price": {
"EUR": 0.01,
"RUB": 0.9,
"USD": 0.012
}
}
],
"vat": 1.2
}
Примеры ошибок
``` { "code": -1, "message": "S3 plan not found" }
```
s3/show_key¶
Возвращает расшифрованный секретный ключ или публичный доступный ключ S3 для указанного аккаунта
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show_key |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
| s3_key | ✅ | string | Тип запрашиваемого ключа (secret_key или access_key) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "s3: show_key: customer not found" }
```