s3.php¶
Модуль управления S3-хранилищем: создание и удаление аккаунтов, управление бакетами и файлами, получение статистики использования, управление тарифными планами и биллингом.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
create_account | создание S3 аккаунта и заказа | Создает новый S3 аккаунт пользователя, привязанный к выбранному тарифному плану, создает бакет и формирует заказ в биллинговой системе. |
create_bucket | создание бакета S3 | Создает новый S3 bucket для существующего пользователя. Проверяет принадлежность s3uid текущему клиенту и создает корзину через API провайдера. |
create_order | создание заказа на S3 сервис | Создает новый S3 аккаунт, бакет и привязывает его к тарифному плану через биллинговую систему. Если тариф платный, создается заказ в WHMCS. |
delete_account | удаление аккаунта | Удаляет S3 аккаунт пользователя, выполняя аудит действий и логирование истории. |
delete_bucket | удаление корзины S3 | Удаляет указанную S3 корзину (bucket), если она принадлежит пользователю и существует. |
delete_file | удаление файла | Удаляет указанный файл из S3 бакета. Требуется валидный s3uid владельца аккаунта. |
delete_payment_account | удаление платежного аккаунта | Запрашивает отмену подписки и удаление S3 аккаунта. Если операция успешна, возвращает дату отмены в формате пользователя. |
get_buckets | получение списка бакетов | Возвращает список S3 бакетов пользователя, информацию об использовании трафика и снапшоты. |
get_buckets_rmq | получение списка бакетов через RMQ | Возвращает информацию о бакетах пользователя, включая их использование, квоты и данные биллинга через очередь сообщений. |
get_files | получение списка файлов в бакете | Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации и поиска. |
get_users | получение списка пользователей S3 | Возвращает список пользователей S3 с детализацией по трафику, хранилищу и данным сервиса (billing/status). Поддерживает фильтрацию по плану, email, локации и поиск по bucket name. |
history | получение истории | Возвращает историю событий, связанных с конкретным S3 планом (id) |
list_plans | получение списков планов | Возвращает список доступных S3 планов с учетом прав пользователя и локации. Для администраторов может возвращать конкретный план по ID. |
show_key | получение ключей доступа S3 | Возвращает расшифрованный секретный ключ или публичный доступный ключ (access_key) для указанного S3 аккаунта. |
s3/cancel_payment_account_deletion¶
Отменяет процесс удаления S3-аккаунта, инициированный через платежную систему (WHMCS). Позволяет восстановить статус сервиса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: cancel_payment_account_deletion |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (используется для администраторов) |
| s3uid | ✅ | string | S3 UID аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/create_account¶
Создает новый S3 аккаунт пользователя, привязанный к выбранному тарифному плану, создает бакет и формирует заказ в биллинговой системе.
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 - Invalid bucket name. Please notice administrator." }
```
s3/create_bucket¶
Создает новый S3 bucket для существующего пользователя. Проверяет принадлежность s3uid текущему клиенту и создает корзину через API провайдера.
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
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| bucket_name | ✅ | string | Имя создаваемого бакета |
| plan_id | ✅ | int | ID выбранного тарифного плана |
| location | ❌ | string | Локация (регион) хранения данных. По умолчанию NL |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account was creating, however bucket create error - Invalid bucket name. Please notice administrator." }
```
s3/delete_account¶
Удаляет S3 аккаунт пользователя, выполняя аудит действий и логирование истории.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Команда действия |
| token | ✅ | string | Токен авторизации |
| 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
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| 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 | Идентификатор метода: get_buckets |
| token | ✅ | string | Авторизационный токен |
| id | ❌ | integer | ID пользователя (для администраторов) |
| s3uid | ✅ | string | S3 UID аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/get_buckets_rmq¶
Возвращает информацию о бакетах пользователя, включая их использование, квоты и данные биллинга через очередь сообщений.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие (get_user_info) |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID пользователя (для администраторов) |
| s3uid | ✅ | string | Уникальный S3 UID пользователя |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets_rmq",
"message": [
{
"name": "example-bucket",
"usage": 1024
},
{
"name": "data-bucket",
"usage": 512
}
],
"usage_storage": 1536,
"quota": 5000,
"metering": {
"total_traffic_gb": 15.5,
"total_storage_peak_gb": 2.4
},
"billing": {
"service_id": 123,
"currency": "EUR",
"period": {
"start": "2024-01-01T00:00:00Z",
"end": "2024-02-01T00:00:00Z"
},
"limits": {
"traffic_gb": 100.0,
"storage_gb": 500
},
"current_period": {
"traffic_used_gb": 15.5,
"storage_used_gb": 2.4,
"billed_traffic_gb": 0,
"billed_storage_gb": 0,
"billed_traffic_amount": 0,
"billed_storage_amount": 0
},
"overage": null,
"records": [],
"error": "billing_unavailable"
},
"access_key": "abc123def456",
"secret_key": "ghi789jkl012",
"endpoint": "s3.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 | Поисковый запрос по имени файла |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/get_users¶
Возвращает список пользователей S3 с детализацией по трафику, хранилищу и данным сервиса (billing/status). Поддерживает фильтрацию по плану, email, локации и поиск по bucket name.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_users |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (для админа) или ID пользователя |
| plan_id | ❌ | integer | ID тарифного плана |
| s3uid | ❌ | string | S3 UID пользователя |
| ❌ | string | Фильтр по email | |
| billing | ❌ | string | Фильтр по биллинговой локации |
| bucket_name | ❌ | string | Имя бакета для поиска S3UID |
| location | ❌ | string | Локация (например, NL) |
| 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": "NL",
"billing": "whmcs",
"currency": "EUR",
"traffic": 50.5,
"storage_usage": 1024,
"price": {
"base_price": 10.0,
"price": 10.0
},
"service": {
"id": 456,
"entity_id": 123,
"service_ident": "a1b2c3d4",
"period": "monthly",
"period_start": "2024-01-01T10:00:00Z",
"period_end": "2024-02-01T10:00:00Z",
"next_commit_date": "2024-02-01T10:00:00Z",
"status": "active"
}
}
]
}
Примеры ошибок
``` { "code": -1, "message": "customer not found" }
```
s3/history¶
Возвращает историю событий, связанных с конкретным S3 планом (id)
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: history |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID S3 плана для получения истории |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3/history: invalid command" }
```
s3/list_plans¶
Возвращает список доступных S3 планов с учетом прав пользователя и локации. Для администраторов может возвращать конкретный план по ID.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list_plans |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID конкретного плана (для администраторов) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "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 account not found for this customer" }
```