Перейти к содержанию

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 аккаунта

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=cancel_payment_account_deletion" \
--data "token=YOUR_TOKEN" \
--data "s3uid=S3_ACCOUNT_UID"
Пример успешного ответа
{
"result": "OK",
"action": "cancel_payment_account_deletion",
"cancellation_date": "2024-12-31",
"cancellation_date_origin": "31.12.2024"
}
Примеры ошибок

``` { "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 Локация (регион) для размещения данных

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=create_order" \
--data "token=YOUR_TOKEN" \
--data "plan_id=123" \
--data "bucket_name=my-new-bucket" \
--data "location=us-east-1"
Пример успешного ответа
{
"result": "OK",
"action": "create_order",
"s3uid": "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 Имя создаваемого бакета

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=create_bucket" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "bucket_name=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "create_bucket",
"message": {
"status": "success",
"bucket_name": "my-new-bucket"
}
}
Примеры ошибок

``` { "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

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=create_order" \
--data "token=HOSTKEY_TOKEN" \
--data "plan_id=VALUE" \
--data "bucket_name=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "create_order",
"s3uid": "5f8e9d2a1b0c4e3f7a6b5c4d3e2f1a0b"
}
Примеры ошибок

``` { "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 Причина удаления аккаунта

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "delete_account",
"cancellation_date": "2024-12-31 23:59:59"
}
Примеры ошибок

``` { "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 Имя корзины для удаления

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=delete_bucket" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "bucket_name=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "delete_bucket",
"message": "Object"
}
Примеры ошибок

``` { "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 Путь или имя файла для удаления

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=delete_file" \
--data "token=YOUR_TOKEN" \
--data "s3uid=YOUR_S3UID" \
--data "bucket_name=YOUR_BUCKET_NAME" \
--data "filename=path/to/file.ext"
Пример успешного ответа
{
"result": "OK",
"action": "delete_file",
"message": "File deleted successfully"
}
Примеры ошибок

``` { "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 аккаунта

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=delete_payment_account" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "delete_payment_account",
"cancellation_date": "2024-12-31",
"cancellation_date_origin": "31.12.2024"
}
Примеры ошибок

``` { "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 пользователя для проверки владения аккаунтом

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=get_buckets" \
--data "token=YOUR_TOKEN"
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets",
"message": [
{
"Name": "bucket-name",
"Usage": 1024
}
],
"bandwidth": 512,
"snapshot": {
"bandwidth_usage": 1024,
"storage_usage": 5120,
"created_at": "2024-01-15T10:30:00Z"
}
}
Примеры ошибок

``` { "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 пользователя

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=get_buckets_rmq" \
--data "token=YOUR_TOKEN" \
--data "s3uid=USER_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 Поисковый запрос по имени файла

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=get_files" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "bucket_name=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "get_files",
"files": {
"items": [
{
"key": "folder/file.txt",
"original_key": "folder/file.txt",
"size": 1024,
"last_modified": "2024-05-20T12:00:00Z"
}
],
"folders": [
{
"key": "folder/",
"original_key": "folder/"
}
]
},
"next_token": "example_continuation_token"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer",
"details": {
"s3uid": "abc-123"
}
}

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 пользователя
email 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)

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=get_users" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"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 Токен авторизации

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=history" \
--data "id=VALUE" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"action": "history",
"data": [
{
"id": 123,
"event": "plan_updated",
"description": "Plan configuration changed",
"created_at": "2024-05-20T12:00:00Z"
}
]
}
Примеры ошибок

``` { "code": -1, "message": "S3 plan not found" }

```

s3/list_plans

Возвращает список доступных S3 планов с учетом прав пользователя и локации. Для администраторов возвращается полный список, для пользователей — только активные планы с ценами в их валюте.

HTTP-метод: POST|GET

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: list_plans
token string Токен авторизации
id int ID конкретного плана (для администраторов)

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=list_plans" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"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

Пример запроса

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=show_key" \
--data "token=YOUR_TOKEN" \
--data "s3uid=YOUR_S3UID" \
--data "s3_key=secret_key"
Пример успешного ответа
{
"result": "OK",
"action": "show_key",
"key": "wJalrXUtnFEMI/KxvUXCDAWSGlS7v69pYV8L3m5fG2A="
}
Примеры ошибок

``` { "code": -1, "message": "s3/show_key: customer not found", "details": { "error": "S3 account not found for this customer" } }

```

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×