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

s3.php

Модуль управления S3-хранилищем: создание и удаление аккаунтов, управление бакетами и файлами, получение статистики использования, управление тарифными планами и биллингом.

Методы API

Метод Действие Описание
create_account создание аккаунта S3 Создает новый S3-аккаунт для клиента, привязывает тарифный план, создает бакет и оформляет заказ в биллинге.
create_bucket создание бакета S3 Создает новый бакет с указанным именем для существующего S3-аккаунта клиента.
create_order создание заказа на S3-аккаунт Создает новый заказ на S3-аккаунт по указанному тарифному плану, валидирует имя бакета, проверяет лимиты и кредиты, создает пользователя и сервис в биллинге.
delete_account удаление S3 аккаунта Полностью удаляет S3 аккаунт пользователя, включая все связанные бакеты и данные.
delete_bucket удаление бакета S3 Удаляет указанный бакет из S3-аккаунта клиента после проверки прав доступа и владения.
delete_file удаление файла Удаляет указанный файл из S3-бакета пользователя.
delete_payment_account отмена оплаченного аккаунта S3 Инициирует процесс отмены оплаченного S3-аккаунта, устанавливая дату отмены в биллинговой системе.
get_buckets получение списка бакетов Возвращает список бакетов S3 для указанного пользователя, включая информацию об использовании хранилища, пропускной способности, снапшотах и ключи доступа.
get_buckets_rmq получение списка бакетов через очередь сообщений Возвращает список бакетов S3 для указанного пользователя, включая информацию об использовании хранилища, пропускной способности, снапшоты и учетные данные доступа.
get_files получение списка файлов Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации и поиска.
get_users получение списка пользователей S3 Возвращает список S3-аккаунтов с информацией о сервисе, трафике и использовании хранилища. Для администраторов поддерживает фильтрацию и пагинацию.
history получение истории изменений Возвращает историю изменений для указанного S3-плана или аккаунта по ID.
list_plans получение списка тарифных планов S3 Возвращает список доступных тарифных планов S3. Для клиентов скрывает неактивные планы (если нет тега s3_test), для администраторов может вернуть конкретный план по ID.
show_key получение ключа доступа Возвращает расшифрованный ключ доступа (access_key или secret_key) для указанного S3-аккаунта.

s3/cancel_payment_account_deletion

Отменяет запланированное удаление оплаченного S3-аккаунта, восстанавливая его статус и дату окончания действия.

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=cancel_payment_account_deletion" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "cancel_payment_account_deletion",
"termination_date": "2024-12-31 23:59:59",
"message": "Удаление аккаунта отменено"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

s3/create_account

Создает новый S3-аккаунт для клиента, привязывает тарифный план, создает бакет и оформляет заказ в биллинге.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: create_account
token string Токен авторизации пользователя
plan_id int Идентификатор тарифного плана S3
bucket_name string Имя создаваемого бакета
location string Локация хранилища (по умолчанию NL)

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

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

``` { "code": -1, "message": "s3/create_order: missing auth token" }

```

s3/create_bucket

Создает новый бакет с указанным именем для существующего S3-аккаунта клиента.

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-123",
"created_at": "2024-05-20T14:30:00Z"
}
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

s3/create_order

Создает новый заказ на S3-аккаунт по указанному тарифному плану, валидирует имя бакета, проверяет лимиты и кредиты, создает пользователя и сервис в биллинге.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: create_order
token string Токен авторизации пользователя
plan_id int ID тарифного плана S3
bucket_name string Имя создаваемого бакета (должно быть валидным)
location string Код локации (например, NL, DE, US)

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

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" \
--data "location=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "create_order",
"s3uid": "7VT1xrnQbWSIQhoOrAngpLUL5reuFcXY"
}
Примеры ошибок
{
"code": -1,
"message": "s3/create_order: no plan_id found"
}

s3/delete_account

Полностью удаляет S3 аккаунт пользователя, включая все связанные бакеты и данные.

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=delete_account" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "delete_account"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

s3/delete_bucket

Удаляет указанный бакет из S3-аккаунта клиента после проверки прав доступа и владения.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: delete_bucket
token string Токен авторизации пользователя
id int ID клиента (для администраторов)
s3uid string Уникальный идентификатор S3-аккаунта пользователя
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": "Bucket deleted successfully"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

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=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "bucket_name=VALUE" \
--data "filename=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "delete_file",
"message": "File deleted successfully"
}
Примеры ошибок
{
"code": -1,
"message": "Delete S3 file error: File not found or permission denied"
}

s3/delete_payment_account

Инициирует процесс отмены оплаченного S3-аккаунта, устанавливая дату отмены в биллинговой системе.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: delete_payment_account
token string Токен авторизации пользователя
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-02-15 23:59:59"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

s3/get_buckets

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

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=get_buckets" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets",
"message": [
{
"name": "my-bucket-01",
"usage": 1073741824,
"created_at": "2024-01-15T10:30:00Z"
},
{
"name": "backup-data",
"usage": 5368709120,
"created_at": "2024-02-20T14:45:00Z"
}
],
"bandwidth": 1048576,
"usage_storage": 6442450944,
"quota": 5000000000000,
"snapshots": [
{
"bandwidth_usage": 1048576,
"storage_usage": 6442450944,
"created_at": "2024-05-20 12:00:00"
}
],
"access_key": "4KCTQIAZ1GLPB8TFIMTO",
"secret_key": "5wsy0Sd1nYyyACKWYQPhVqbX36t2gDjdVsnv7n8D",
"endpoint": "https://s3.nl.hostkey.ru"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

s3/get_buckets_rmq

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

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: get_buckets_rmq
token string Токен авторизации для проверки прав доступа
s3uid string Уникальный идентификатор пользователя S3 (S3UID)
id integer Идентификатор клиента (используется администраторами для просмотра чужих аккаунтов)

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

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=get_buckets_rmq" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets_rmq",
"message": [
{
"name": "my-bucket-01",
"usage": 1073741824,
"count": 150,
"created": "2023-10-15T10:30:00Z"
},
{
"name": "backup-data",
"usage": 5368709120,
"count": 42,
"created": "2023-11-20T14:45:00Z"
}
],
"bandwidth": 1048576,
"usage_storage": 6442450944,
"quota": 107374182400,
"snapshots": [
{
"bandwidth_usage": 1048576,
"storage_usage": 6442450944,
"created_at": "2024-01-15 12:00:00"
}
],
"access_key": "4KCTQIAZ1GLPB8TFIMTO",
"secret_key": "5wsy0Sd1nYyyACKWYQPhVqbX36t2gDjdVsnv7n8D",
"endpoint": "https://s3.nl.hostkey.ru"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

s3/get_files

Возвращает список файлов и папок в указанном S3 бакете с поддержкой пагинации и поиска.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: get_files
token string Токен авторизации
s3uid string Уникальный идентификатор S3 пользователя
bucket_name string Имя бакета S3
continuation_token string Токен для продолжения пагинации (если есть)
max_keys int Максимальное количество файлов для возврата (по умолчанию 50, максимум 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" \
--data "max_keys=50" \
--data "search=report"
Пример успешного ответа
{
"result": "OK",
"action": "get_files",
"files": [
{
"key": "folder/subfolder/file.txt",
"original_key": "folder/subfolder/file.txt",
"size": 1024,
"last_modified": "2024-01-15T10:30:00Z",
"etag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
"storage_class": "STANDARD"
},
{
"key": "image.png",
"original_key": "image.png",
"size": 2048576,
"last_modified": "2024-01-14T08:20:00Z",
"etag": "\"e99a18c428cb38d5f260853678922e03\"",
"storage_class": "STANDARD"
}
],
"folders": [
{
"key": "folder/",
"size": 0,
"last_modified": "2024-01-15T10:30:00Z"
},
{
"key": "folder/subfolder/",
"size": 0,
"last_modified": "2024-01-15T10:30:00Z"
}
],
"next_token": "eyJDb250aW51YXRpb25Ub2tlbiI6IkZhbHNlIiwiQ29udGVudCI6eyJrZXkiOiJmb2xkZXIvc3ViZm9sZGVyL2ZpbGUudHh0In19"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

s3/get_users

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

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: get_users
token string Токен авторизации
id int ID клиента (для администратора) или ID S3-аккаунта
plan_id int ID тарифного плана S3
s3uid string Уникальный идентификатор пользователя S3
email string Email пользователя для фильтрации
billing string Биллинговая система для фильтрации
bucket_name string Имя бакета для поиска пользователя
storage_type string Тип хранилища (Standard, Cold и т.д.)
location string Локация (код региона, например NL)
period_from string Начальная дата периода для статистики трафика (YYYY-MM-DD)
period_to string Конечная дата периода для статистики трафика (YYYY-MM-DD)
order string Поле для сортировки (total_traffic_period_gb, total_storage_peak_gb)
order_by string Направление сортировки (ASC, DESC)
limit int Количество записей для возврата
offset int Смещение для пагинации

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

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": "7VT1xrnQbWSIQhoOrAngpLUL5reuFcXY",
"email": "user@example.com",
"billing": "whmcs",
"region": "NL",
"storage_type": "Standard",
"quota": 5000,
"traffic": 12.5,
"storage_usage": 45.2,
"service": {
"next_commit_date": "2024-02-15",
"cancellation_date": null,
"termination_date": null,
"termination_unix_date": null,
"cancellation_unix_date": null,
"status": "active"
}
}
]
}
Примеры ошибок

``` { "code": -1, "message": "s3/get_users: customer not found" }

```

s3/history

Возвращает историю изменений для указанного S3-плана или аккаунта по ID.

HTTP-метод: POST|GET

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: history
id int Идентификатор S3-плана или аккаунта для получения истории
token string Токен авторизации

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

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=history" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"action": "history",
"data": [
{
"id": 1542,
"entity_id": 12,
"entity_type": "s3_plan",
"action": "update",
"description": "Обновлен тарифный план",
"user_id": 5,
"created_at": "2024-01-15T10:30:00Z"
},
{
"id": 1541,
"entity_id": 12,
"entity_type": "s3_plan",
"action": "create",
"description": "Создан новый тарифный план",
"user_id": 5,
"created_at": "2024-01-10T08:15:00Z"
}
]
}
Примеры ошибок
{
"code": -1,
"message": "s3/history: invalid command"
}

s3/list_plans

Возвращает список доступных тарифных планов S3. Для клиентов скрывает неактивные планы (если нет тега s3_test), для администраторов может вернуть конкретный план по ID.

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": "S3 Standard NL",
"active": 1,
"quota": 5000,
"storage_type": "standard",
"bandwidth_limit": 0,
"locations": "NL,DE",
"monthly_rub": 1500,
"monthly_eur": 15.0,
"monthly_usd": 16.5,
"traffic_overage_price_rub": 0.05,
"traffic_overage_price_eur": 0.0005,
"traffic_overage_price_usd": 0.0006,
"storage_overage_price_rub": 0.01,
"storage_overage_price_eur": 0.0001,
"storage_overage_price_usd": 0.0001,
"price": {
"monthly_rub": 1500,
"monthly_eur": 15.0,
"monthly_usd": 16.5
},
"tags": []
}
]
}
Примеры ошибок
{
"code": -1,
"message": "s3/list_plans: missing auth token"
}

s3/show_key

Возвращает расшифрованный ключ доступа (access_key или secret_key) для указанного S3-аккаунта.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: show_key
token string Токен авторизации пользователя
s3uid string Уникальный идентификатор S3-аккаунта
s3_key string Тип возвращаемого ключа: 'access_key' или 'secret_key'

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

curl -s "https://invapi.hostkey.ru/s3.php" -X POST \
--data "action=show_key" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "s3_key=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "show_key",
"key": "4KCTQIAZ1GLPB8TFIMTO"
}
Примеры ошибок
{
"code": -1,
"message": "S3 account not found for this customer"
}

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