s3.php¶
Модуль управления S3-хранилищем: создание и удаление аккаунтов, управление бакетами и файлами, получение статистики использования, управление тарифными планами и биллингом.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
create_account | создание S3 аккаунта | Создает новый S3 аккаунт (bucket) для клиента, привязывает его к тарифному плану и создает соответствующий заказ в биллинге. |
create_bucket | создание корзины S3 | Создает новую корзину (bucket) для существующего аккаунта S3 пользователя. |
create_order | создание заказа на S3 аккаунт | Создает новый S3 аккаунт (bucket) для клиента, привязывает его к тарифному плану и создает соответствующий заказ в биллинговой системе. |
delete_account | удаление аккаунта S3 | Удаляет S3 аккаунт пользователя, выполняет аудит действий и логирует операцию в историю. |
delete_bucket | удаление корзины S3 | Удаляет указанную корзину (bucket) из хранилища S3, если она принадлежит пользователю. |
delete_file | удаление файла из S3 бакета | Удаляет указанный файл из S3 бакета. Требуется авторизация и наличие прав доступа к аккаунту. |
delete_payment_account | удаление платежного аккаунта (запрос на отмену подписки) | Запрашивает отмену сервиса S3, инициируя процесс удаления/подписки. При успешном выполнении возвращает информацию о дате отмены. |
get_buckets | получение списка бакетов | Возвращает список S3 бакетов пользователя, информацию об использовании трафика и снапшоты. |
get_buckets_rmq | получение информации о бакетах через RMQ | Возвращает список бакетов пользователя, информацию об их использовании (usage), данные биллинга, метрики и учетные данные доступа к S3. |
get_files | получение списка файлов в бакете | Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации и поиска |
get_users | получение списка пользователей S3 | Возвращает список пользователей S3 с детальной информацией о тарифах, потреблении трафика и данных сервиса. |
history | получение истории | Возвращает историю событий (логи) для указанного S3 аккаунта или пользователя |
list_plans | получение списков планов | Возвращает список доступных S3 планов с учетом прав пользователя, локации и валюты клиента. Для администраторов доступен просмотр конкретного плана по ID. |
show_key | получение ключей доступа S3 | Возвращает расшифрованный секретный ключ или ключ доступа для указанного S3 аккаунта |
s3/cancel_payment_account_deletion¶
Отменяет процесс удаления S3-аккаунта, инициированный из-за проблем с оплатой. Сбрасывает причину приостановки и обновляет даты коммитов.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID пользователя (для администраторов) |
| s3uid | ✅ | string | S3 UID аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/create_account¶
Создает новый S3 аккаунт (bucket) для клиента, привязывает его к тарифному плану и создает соответствующий заказ в биллинге.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_account |
| 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." }
```
s3/create_bucket¶
Создает новую корзину (bucket) для существующего аккаунта S3 пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_bucket |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта пользователя |
| bucket_name | ✅ | string | Имя создаваемой корзины |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "-1": { "code": -1, "message": "S3 account not found for this customer" }, "-2": { "code": -1, "message": "Create bucket error: Invalid bucket name." } }
```
s3/create_order¶
Создает новый S3 аккаунт (bucket) для клиента, привязывает его к тарифному плану и создает соответствующий заказ в биллинговой системе.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_order |
| token | ✅ | string | Токен авторизации |
| bucket_name | ✅ | string | Имя создаваемого бакета |
| plan_id | ✅ | integer | 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 | Идентификатор метода: delete_account |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID администратора (если действие выполняется сотрудником) |
| s3uid | ✅ | string | Уникальный идентификатор S3 аккаунта для удаления |
| reason | ❌ | string | Причина удаления аккаунта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3 account not found for this customer" }
```
s3/delete_bucket¶
Удаляет указанную корзину (bucket) из хранилища S3, если она принадлежит пользователю.
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" }
```
s3/delete_file¶
Удаляет указанный файл из S3 бакета. Требуется авторизация и наличие прав доступа к аккаунту.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие (должно быть delete_file) |
| 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 UID аккаунта |
| reason | ❌ | string | Причина отмены/подписки |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "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¶
Возвращает список бакетов пользователя, информацию об их использовании (usage), данные биллинга, метрики и учетные данные доступа к S3.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_buckets_rmq |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | 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_peak_gb": 2.0
},
"billing": {
"service_id": 123,
"currency": "EUR",
"period": {
"start": "2024-01-01T00:00:00Z",
"end": "2024-02-01T00:00:00Z"
},
"limits": {
"traffic_gb": 10.0,
"storage_gb": 50
},
"current_period": {
"traffic_used_gb": 1.5,
"storage_used_gb": 2.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": "AKIAEXAMPLE123456789",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"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 с детальной информацией о тарифах, потреблении трафика и данных сервиса.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_users |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (для админа) |
| plan_id | ❌ | integer | ID тарифного плана |
| s3uid | ❌ | string | S3 UID пользователя |
| ❌ | string | Поиск по email | |
| billing | ❌ | string | Биллинг (локация) |
| location | ❌ | string | Локация поиска |
| storage_type | ❌ | string | Тип хранилища |
| period_from | ❌ | string | Дата начала периода (Y-m-d) |
| period_to | ❌ | string | Дата окончания периода (Y-m-d) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_users",
"s3_users": [
{
"id": 123,
"s3uid": "5f8e9a7b-c6d5-4e3f-b2a1-0987654321ab",
"email": "user@example.com",
"billing": "whmcs_itb",
"region": "NL",
"storage_type": "Standard",
"traffic": 15.5,
"storage_usage": 450.2,
"price": {
"EUR": 19.99,
"RUB": 1850.0,
"USD": 21.5
},
"service": {
"id": 456,
"entity_id": 123,
"rate": 19.99,
"service_ident": "a1b2c3d4e5",
"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
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| id | ✅ | integer | ID S3 аккаунта или пользователя для получения истории |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "S3/history: invalid token, logout" }
```
s3/list_plans¶
Возвращает список доступных S3 планов с учетом прав пользователя, локации и валюты клиента. Для администраторов доступен просмотр конкретного плана по 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",
"quota": 500,
"location": "NL",
"price": {
"base_price": 10.0,
"price": {
"EUR": 10.0,
"RUB": 950.0,
"USD": 11.0
}
},
"traffic_overage_price": {
"EUR": 0.01,
"RUB": 1.0,
"USD": 0.01
},
"storage_overage_price": {
"EUR": 0.05,
"RUB": 5.0,
"USD": 0.05
}
}
]
}
Примеры ошибок
``` { "code": -1, "message": "action required" }
```
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 account not found for this customer" }
```