s3.php¶
Модуль управления S3-хранилищем: создание и удаление аккаунтов, управление бакетами и файлами, получение статистики использования, управление тарифными планами и биллингом.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
create_account | создание S3 аккаунта (через создание заказа) | Создает новый S3 аккаунт пользователя, привязанный к тарифному плану, с автоматическим созданием биллинг-заказа в WHMCS. |
create_bucket | создание бакета S3 | Создает новый S3 bucket для пользователя, привязанный к его существующему аккаунту. |
create_order | создание заказа на S3 аккаунт | Создает новый S3 аккаунт, привязанный к тарифному плану, с созданием бакета и оформлением платежного заказа в WHMCS. |
delete_account | удаление аккаунта | Удаляет S3 аккаунт пользователя, выполняет аудит действий и логирует операцию в историю. |
delete_bucket | удаление корзины S3 | Удаляет указанную корзину (bucket) из хранилища, если она принадлежит пользователю. |
delete_file | удаление файла | Удаляет указанный файл из S3 бакета. Требуется авторизация и проверка прав доступа пользователя к аккаунту. |
delete_payment_account | удаление платежного аккаунта | Запрашивает отмену подписки и удаление S3 аккаунта. Если операция успешна, возвращает дату отмены в формате пользователя. |
get_buckets | получение списка бакетов (закомментировано) | Метод предназначен для получения списка S3 бакетов, информации об их использовании и снапшотах. В текущей версии кода метод закомментирован. |
get_buckets_rmq | получение информации о бакетах через RMQ | Возвращает список бакетов пользователя, их использование (usage), квоту, данные метрики и учетные данные S3. |
get_files | получение списка файлов | Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации и поиска |
get_users | получение списка пользователей S3 | Возвращает список пользователей S3 с информацией о трафике, хранилище и данных сервиса. Поддерживает фильтрацию по плану, email, биллингу, s3uid и локации. |
history | получение истории | Возвращает историю событий для указанного S3 плана |
list_plans | получение списков планов | Возвращает список доступных S3 планов с учетом прав пользователя и локации. Для администраторов возвращается полный список, для пользователей — только активные планы с ценами в их валюте. |
show_key | получение ключей доступа S3 | Возвращает расшифрованный секретный ключ или публичный доступный ключ (access_key) для указанного S3 аккаунта. |
s3/cancel_payment_account_deletion¶
Отменяет процесс удаления S3-аккаунта, инициированный через платежную систему (WHMCS). Позволяет восстановить статус сервиса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Команда действия |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID пользователя (для администратора) |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/create_account¶
Создает новый S3 аккаунт пользователя, привязанный к тарифному плану, с автоматическим созданием биллинг-заказа в WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Команда действия (должна быть create_order для создания аккаунта) |
| token | ✅ | string | Токен авторизации |
| plan_id | ✅ | int | ID выбранного тарифного плана |
| bucket_name | ✅ | string | Имя создаваемого бакета |
| location | ❌ | string | Локация (регион) для размещения данных |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "S3 account was creating, however bucket create error - Invalid bucket name. Please notice administrator." }
```
s3/create_bucket¶
Создает новый S3 bucket для пользователя, привязанный к его существующему аккаунту.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_bucket |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта пользователя |
| bucket_name | ✅ | string | Имя создаваемого бакета |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/create_order¶
Создает новый S3 аккаунт, привязанный к тарифному плану, с созданием бакета и оформлением платежного заказа в WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_order |
| token | ✅ | string | Токен авторизации |
| plan_id | ✅ | int | ID тарифного плана S3 |
| bucket_name | ✅ | string | Имя создаваемого бакета |
| location | ❌ | string | Локация (регион) хранения данных. По умолчанию NL |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account was creating, however bucket create error - [ошибка]" }
```
s3/delete_account¶
Удаляет S3 аккаунт пользователя, выполняет аудит действий и логирует операцию в историю.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID пользователя (для администраторов) |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
| reason | ❌ | string | Причина удаления аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/delete_bucket¶
Удаляет указанную корзину (bucket) из хранилища, если она принадлежит пользователю.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_bucket |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID пользователя (для администраторов) |
| s3uid | ✅ | string | S3 UID аккаунта |
| bucket_name | ✅ | string | Имя корзины для удаления |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Delete S3 bucket error: Bucket not empty or access denied" }
```
s3/delete_file¶
Удаляет указанный файл из S3 бакета. Требуется авторизация и проверка прав доступа пользователя к аккаунту.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Команда действия (delete_file) |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя бакета |
| filename | ✅ | string | Путь или имя файла для удаления |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/delete_payment_account¶
Запрашивает отмену подписки и удаление S3 аккаунта. Если операция успешна, возвращает дату отмены в формате пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_payment_account |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID пользователя (для администраторов) |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/get_buckets¶
Метод предназначен для получения списка S3 бакетов, информации об их использовании и снапшотах. В текущей версии кода метод закомментирован.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие API |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID пользователя (для админа) |
| s3uid | ❌ | string | S3 UID пользователя для проверки владения аккаунтом |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Load bucket error: S3 account not found for this customer" }
```
s3/get_buckets_rmq¶
Возвращает список бакетов пользователя, их использование (usage), квоту, данные метрики и учетные данные S3.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие: get_user_info (в контексте метода используется для маршрутизации) |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID клиента (для администраторов) |
| s3uid | ✅ | string | S3 UID пользователя |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets_rmq",
"message": [
{
"name": "example-bucket",
"usage": 1024
},
{
"name": "test-bucket",
"usage": 512
}
],
"usage_storage": 1536,
"quota": 5000,
"metering": {
"total_traffic_gb": 1.5,
"total_storage_gb": 10.2
},
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"endpoint": "s3.nl.example.com"
}
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/get_files¶
Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации и поиска
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_files |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя бакета |
| continuation_token | ❌ | string | Токен для пагинации (следующая страница) |
| max_keys | ❌ | int | Максимальное количество ключей в ответе (макс. 100) |
| search | ❌ | string | Поисковый запрос по имени файла |
Пример запроса
Пример успешного ответа
Примеры ошибок
s3/get_users¶
Возвращает список пользователей S3 с информацией о трафике, хранилище и данных сервиса. Поддерживает фильтрацию по плану, email, биллингу, s3uid и локации.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_users |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (для админа) |
| plan_id | ❌ | integer | ID тарифного плана |
| s3uid | ❌ | string | S3 UID пользователя |
| ❌ | string | Email пользователя | |
| billing | ❌ | string | Биллинговая локация |
| bucket_name | ❌ | string | Имя бакета (для поиска s3uid) |
| location | ❌ | string | Локация |
| storage_type | ❌ | string | Тип хранилища |
| 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",
"region": "US",
"billing": "USD",
"currency": "USD",
"traffic": 50.5,
"storage_usage": 1024,
"price": {
"base_price": 10.0,
"price": 10.0
},
"service": {
"id": 456,
"entity_id": 123,
"service_ident": "srv_abc123",
"period": "monthly",
"period_start": "2024-01-01T00:00:00Z",
"period_end": "2024-02-01T00:00:00Z",
"next_commit_date": "2024-02-01T00:00:00Z",
"status": "active"
}
}
]
}
Примеры ошибок
``` { "code": -1, "message": "customer not found" }
```
s3/history¶
Возвращает историю событий для указанного S3 плана
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: history |
| id | ✅ | int | ID S3 плана |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 plan not found" }
```
s3/list_plans¶
Возвращает список доступных S3 планов с учетом прав пользователя и локации. Для администраторов возвращается полный список, для пользователей — только активные планы с ценами в их валюте.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list_plans |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID конкретного плана (для администраторов) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "list_plans",
"plans": [
{
"id": 1,
"name": "Standard S3 Plan",
"active": 1,
"storage_type": "standard",
"location": "NL",
"price": {
"base_price": 10.0,
"price": {
"USD": 10.5,
"EUR": 9.8,
"RUB": 950
}
},
"traffic_overage_price": {
"usd": 0.01,
"eur": 0.01,
"rub": 1
},
"storage_overage_price": {
"usd": 0.05,
"eur": 0.05,
"rub": 5
}
}
]
}
Примеры ошибок
``` { "code": -1, "message": "action required" }
```
s3/show_key¶
Возвращает расшифрованный секретный ключ или публичный доступный ключ (access_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", "details": { "error": "S3 account not found for this customer" } }
```